A Flux Javascript Framework
Simplicity is key in reducing bugs and coding quickly. The easier it is to code, the more confident and familiar a developer becomes, in turn significantly speeding up development time.
Easy as 1, 2, 3!
Dispatch
When requesting an API endpoint, saving a file, or saving to a database, return the results in a dispatch.
Flux.dispatch('UPDATE_DATA', myData)
.
React
Listen for the action type and react. Add a listener at the beginning of component creation and remove on component destruction. Listeners should have a callback method to update store data.
Flux.on('UPDATE_CONTENT', updateMyView)
Get Dynamic Data
Get the updated data from the store. Get any data from the store in a variety of different ways. ArkhamJS is as flexible as the project.
Flux.getState('app.myData')
Features
Flux Architecture
The Flux programming pattern places an emphasis on a unidirectional data flow, consists of three parts: the dispatcher, the stores, and the reactions/views.
Simplicity
Whether a project is large or small, ease of use is the most important factor. The time it takes to onboard new developers with a new language like Vue or Angular -- or even the complexity of Redux along with its various middleware -- can increase a project timeline, and time is money.
Single Store
All the data needed, in one store... the single source of truth. A side step from the that of a traditional flux architecture. Using a single source is extremely reliable, fast, and debug friendly. By using selectors to dig through the app state and obtain context-relevant information, only relevant data is processed on any given dispatch.
Versatile
Learn once, code anywhere. ArkhamJS is not tied to a particular library. Use it on the front-end and back-end. ArkhamJS can be used as a standalone framework or within any existing library, including: Angular, NodeJS, React, and React Native!
Immutable
To prevent object referencing, the use of immutable objects is imparable. When a mutable state changes, the state's property is not the only item that is changed, the item it references can also be updated with it. To prevent passing objects between different states, immutable objects provides your data a one-way update path.
Typed
Although TypeScript is not required, ArkhamJS is strongly typed to play well with TypeScript. Included are definitions to support your TypeScript project.
Debugging
The most important factor in choosing a framework is easy it of use. The second, debugging. With the state debugger enabled, any actions and state changes coming through the framework, are logged in the console. Making both, the previous and next state, visible to the developer. A great way to make your data transparent!
ArkhamJS is a non-intrusive framework. If the project is React, devs just need to know React. Plain and simple.