Files
privacy.sexy/docs/presentation.md

1.9 KiB

Presentation layer

  • Consists of Vue.js components and other UI-related code.
  • Desktop application is created using Electron.
  • Event driven as in components simply listens to events from the state and act accordingly.

Application data

Application state

  • Stateful components mutate or/and react to state changes in ApplicationContext.
  • Stateless components that does not handle state extends Vue
  • Stateful components that depends on the collection state such as user selection, search queries and more extends StatefulVue
  • The single source of truth is a singleton of the state created and made available to presentation layer by StatefulVue
  • StatefulVue includes abstract handleCollectionState that is fired once the component is loaded and also each time collection is changed.
  • Do not forget to subscribe from events when component is destroyed or if needed collection is changed.
    • 💡 events in base class StatefulVue makes lifecycling easier
  • 📖 See Application state | Application layer where the state is implemented using using state pattern.