By: Daniel Baah
Here are a few notes of AngularJS:
• Despite the huge backing from the open-source community, the official documentation, as well as runtime errors had a frustrating level of ambiguity
• No official pattern for router & state management
ng-repeat performance with large collections
• Lack of official project scaffolding tools
Vue.js, created by Evan You, is an incredibly fast, easy to set-up progressive user interface framework with the versatility to build apps at any scale. Teamed with its core plugins Vuex, and Vue Router, Vue.js has many of the tools to power modern Single Page Applications. Check out vue-awesome for a curated list of Vue.js resource, dev tools, utilities, ui components and much more.
Some additional development tools:
• Angular CLI — scaffolding tool to get your project started from scratch. Makes end to end and unit test execution easy
• Augury — chrome extension to assist component debugging & profiling
• Mobile Toolkit — set of tools and fundamentals to develop progressive web mobile applications with service workers for offline use
NgRx is a RxJS powered suite of libraries built to handle state management in Angular applications. This system, inspired by Redux, has a few core principles:
• Application state is the single source of truth & is stored in an object tree
• The state object is immutable. Components and services never directly change the application state; instead, “the only way to change the state is to emit an action, an object describing what happened” (http://redux.js.org/docs/introduction/ThreePrinciples.html#state-is-read-only
• These said actions are passed to pure functions, called reducers, that take the previous state & the next action to compute the new state
• Application state is accessed via the Store, an Observable of the application state and its actions
As mentioned earlier, state management in large applications is key. NgRx makes state management fluent and direct. We believe that together, these frameworks and libraries make for the ideal collection of tools needed to build web applications of the future.
We’ve already stared to leverage Vue, Angular, RxJS, and NgRx in some very exciting projects. Stay tuned to learn more about these projects, as well as exciting new technologies and processes used every day here at SpatialDev.