Skip to content

dzdrazil/react-redux-system-starter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-redux-system-starter

This repo has moved!

I've migrated my work over to this location: https://gitlab.com/zdragnar/react-redux-starter

not setup as isomorphic

Note: This was originally intended to use jspm / system.js; however, because that project is still tied to babel 5.2.8 at the time of this writing, the project is using Browserify. Expect this to change at some point in the future.

This is a rough outline of a project setup with:

Tools:

  • Airbnb eslint config
  • Babel 6.1.2
  • gulp
  • browserify

Libraries:

  • React
  • react-router
  • Redux
  • redux-simple-router (exposes an action to invoke route changes)
  • tcomb (provides immutable, typed objects and collections)
  • tcomb-form (provides form markup validation, validation and error styling based on tcomb types)
  • axios (for making AJAX requests)

Reducing boilerplate:

  • redux-create-router (more or less copied from the reducing boilerplate tutorial)
  • src/scripts/actions/createAsyncActions.js
    • this one is a hand-rolled action creator function, unlike common middleware solutions such as redux-async-flow or redux-combine-actions
    • It's used primarily to demo how easy it is to roll your own, and depending on your taste you may want one of the above two instead

Totally tangential additions:

  • swagger-mock-api because it's handy
  • watch-based building and live reloading via gulp --watch

TODO:

  • Add immutable support (note: done with the delightful tcomb )
  • Add react router
  • Integrate react-router into redux state using redux router
  • Add some async actions
  • Follow this issue and upgrade babel version when appropriate to get decorator support back
  • Implement PostCSS or SASS
  • Implement some smart and dumb components
    • Redux explanation here
    • Generic React best practice explanation here
    • In this project, "container" components "connect" the store to props, and "presentation" components are store-agnostic
  • Fix the Gulpfile
  • Add in other requisite tasks to support SASS / PostCSS
  • Add basic assets such as a favicon