Philosophies and Project Goals

  • Simpler is better.

  • Syntax should be easy to remember, easy to write, and easy to read.

  • Should massively reduce Redux boilerplate

  • No arbitrary 1:1:1 groupings (or any sub-groupings thereof) of actions to reducers to components should be required or even encouraged.

  • Should be entirely decoupled from React and other view libraries.

  • Naming schemes should be patterned after core Redux.

  • All features should be opt-in. This allows existing projects to migrate to Fluxuate bit-by-bit.

  • Everything should have an escape hatch. Nothing should lock you in to doing things the "Fluxuate" way. Raw Redux (or other helper libraries) should always be readily at hand.

  • Reducer composition should be easy.

  • Asynchronous side effects, etc, should be easy.

  • Action creators should be unnecessary, but still an option. Correct FSA actions should be completely abstracted away by default.

  • String constants should be unnecessary. String literals should be safer to use than in raw Redux.

  • Hot Module Replacement should just work.

  • Code splitting should be a breeze.

  • Should provide a solid foundation for learning Redux itself with little or no deviations from the ideologies espoused by it.

  • Should be appealing to beginners and to people coming from non-functional-programming paradigms, specifically people with Object-Oriented backgrounds.

  • Should provide common utilities such as composable, memoized selectors, before and after action hooks, request/success/failure sub-actions, and optimistic updates.

  • The state tree should be relatively traversable.

  • Should be extensible. Add-ons to Fluxuate functionality should be straightforward to write and use.

  • Should integrate easily with immutability libraries and the concept in general.

results matching ""

    No results matching ""