redux & routes
https://github.com/ndreckshage/js-chicago-redux-and-routes
nick dreckshage
sr. ui engineer @ raise.com
https://github.com/ndreckshage
@nickdreckshage
redux & routes…a bit broader…
easing js fatigue
babel
webpack
react
react-router
eslint
npm
node
redux-simple-router
redux-router
redux
redux-devtools
redux-thunk
immutable.js
universal/isomorphic
es6
1000’s of react-starter-kits
css modules
hot loading
time traveling
ember/angular/etc
a lot of people have made many really great things
a lot people want to build very ambitious things
but it can be overwhelming!
https://medium.com/@ericclemmons/javascript-
fatigue-48d4011b6fc4#.v956cs93z
https://medium.com/@ericclemmons/javascript-
fatigue-48d4011b6fc4#.v956cs93z
js fatigue applies to both setup & building a
spa with react & redux.
ember / ember-cli does some really nice things.
best practices for a redux spa?
convention -> configuration -> happy medium
https://github.com/raisemarketplace/ground-control
https://github.com/ndreckshage/sambell
Structured, universal, SPA architecture
CLI to create universal, SPA with a single file
easing js fatigue…2 new things…
GroundControl goals (ease building): simplify react/
redux/spa architecture. scalable & organized. treat routes
as isolated, stateless pages - like a server side refresh.
provide opinionated reducer structure so developer
doesn’t have to think about it. universal data fetching api
to easily control rendering.
sambell goals (ease getting started): ultimate simplicity.
a universal, single page app with a single file. index.php
ease. not a starter kit, move complexity behind the
scenes. app code only. nice defaults but highly
configurable. incremental complexity.
redux & routes…why it’s hard
disconnected
global application state
global route state
https://github.com/ndreckshage/js-chicago-redux-and-routes/tree/master/1-react-router-and-redux
react-router-redux (previously
redux-simple-router) connects them.
unpredictable
imo, routes makes my immutable,
testable reducers / application state
feel like a global, mutable variable.
https://github.com/ndreckshage/js-chicago-redux-and-routes/tree/master/2-react-router-and-redux
• what did the previous route do to my
application state?
• if i navigate back to a previous route, is the
previous state still there? do i need to
manually reset state? garbage collection?
• how do i add new reducers to the store for a
route that needs it. if a new route is added, i
need to change everything? code splitting?
flat structure great at first…
still ok…
0 confidence what my state looks like!
route based state organization
By fundamentally organizing state based on the routing
structure, we simplify our ‘world view’ to our active route.
GroundControl:
• Organizes Redux reducers based on routes
• Automatic nested reducers
• Coordinates top level application state (still global)
• Keeps reducer implementations intact (testable)
• Clears out stale state, leaves parent route state.
• Feels more like server side dev (ctrl+f5)
https://github.com/ndreckshage/js-chicago-redux-and-routes/tree/master/3-react-router-and-redux
JS Chicago Meetup 2/23/16 - Redux & Routes
JS Chicago Meetup 2/23/16 - Redux & Routes
JS Chicago Meetup 2/23/16 - Redux & Routes
data fetching
• react router leaves data fetching up to you.
• server side, sync makes more sense. client side async might. so you
decide! inverted data fetching api. and it’s universal.
• makes sense for a router. colocated component data fetching
makes sense for falcon / graphql (build queries).
too many tools…so much setup…
1774 (and counting) starter kits…
https://github.com/search?utf8=%E2%9C%93&q=react
+starter&type=Repositories&ref=searchresults
https://medium.com/@ericclemmons/javascript-
fatigue-48d4011b6fc4#.v956cs93z
http://blog.vjeux.com/2015/javascript/challenge-best-javascript-setup-for-quick-prototyping.html
why not a starter kit? dislike being
thrown in middle of someone else’s code,
especially when getting started. out of site
out of mind. app code only.
1 file. no webpack, .eslintrc, .babelrc,
node_modules, client setup, server setup,
store setup, etc.
configurable!
https://github.com/ndreckshage/sambell/blob/master/src/app/gerty.defaults.js
for prototypes. but could be for
prod, why not.
last thoughts: react ecosystem
is really remarkable. but there is
room to make application
development easier for us plebs.
thanks! questions?

More Related Content

PDF
Designing applications with Redux
PPTX
Rethinking Best Practices
PDF
Redux Universal
PDF
Using redux
PDF
React.js in real world apps.
PDF
Redux js
PPTX
Better web apps with React and Redux
PPTX
ProvJS: Six Months of ReactJS and Redux
Designing applications with Redux
Rethinking Best Practices
Redux Universal
Using redux
React.js in real world apps.
Redux js
Better web apps with React and Redux
ProvJS: Six Months of ReactJS and Redux

What's hot (20)

PDF
Workshop React.js
PDF
React.js+Redux Workshops
PPTX
Getting Started With ReactJS
PDF
React Lifecycle and Reconciliation
PPTX
Academy PRO: React JS. Redux & Tooling
PPTX
A Brief Introduction to React.js
PDF
React on es6+
PPTX
React + Redux Introduction
PPTX
React / Redux Architectures
PDF
React state managmenet with Redux
PPT
Starting with Reactjs
PPTX
Getting started with Redux js
PDF
React.js and Redux overview
PDF
React JS and Redux
PDF
React, Redux, ES2015 by Max Petruck
PPTX
Better React state management with Redux
PPTX
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
PDF
React for Dummies
PDF
State Models for React with Redux
PPTX
React, Flux and a little bit of Redux
Workshop React.js
React.js+Redux Workshops
Getting Started With ReactJS
React Lifecycle and Reconciliation
Academy PRO: React JS. Redux & Tooling
A Brief Introduction to React.js
React on es6+
React + Redux Introduction
React / Redux Architectures
React state managmenet with Redux
Starting with Reactjs
Getting started with Redux js
React.js and Redux overview
React JS and Redux
React, Redux, ES2015 by Max Petruck
Better React state management with Redux
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
React for Dummies
State Models for React with Redux
React, Flux and a little bit of Redux
Ad

Viewers also liked (11)

PDF
SamLandryPro&AcademicKudos
PDF
Health registries for research anja ariansen
PPTX
Tarea de computación
PDF
Building a Space Enterprise
PDF
Pak0771sort abc
PDF
Daily derivative report money classic research
PDF
Registries rolv skjaerven
PDF
Emarketer worldwide-ad-spending-forecast-2013
PDF
Letter of Recommendation
PPTX
La escultura
PDF
React server side rendering performance
SamLandryPro&AcademicKudos
Health registries for research anja ariansen
Tarea de computación
Building a Space Enterprise
Pak0771sort abc
Daily derivative report money classic research
Registries rolv skjaerven
Emarketer worldwide-ad-spending-forecast-2013
Letter of Recommendation
La escultura
React server side rendering performance
Ad

Similar to JS Chicago Meetup 2/23/16 - Redux & Routes (20)

PDF
Intro Couchdb
PDF
Advanced React
PPTX
Passionate People Meetup - React vs Vue with a deepdive into Proxies
PDF
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
PDF
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
ODP
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
PDF
Intro to Sails.js
PDF
Client Side Measurement & Performance With Rails
PPTX
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
PDF
Scaling Mapufacture on Amazon Web Services
PDF
React state management with Redux and MobX
PPTX
NEXTjs.pptxfggfgfdgfgfdgfdgfdgfdgfdgfdgfg
PDF
Integrating React.js Into a PHP Application
PPT
Web enabling your survey business ppt version
PPTX
SnapyX
PPTX
SnapyX - ParisJS
PDF
6 tips for improving ruby performance
PDF
Streamlining Your Applications with Web Frameworks
PPTX
Website optimization with request reduce
PDF
Angular (v2 and up) - Morning to understand - Linagora
Intro Couchdb
Advanced React
Passionate People Meetup - React vs Vue with a deepdive into Proxies
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Perchè potresti aver bisogno di un database NoSQL anche se non sei Google o F...
Intro to Sails.js
Client Side Measurement & Performance With Rails
From Zero to Performance Hero in Minutes - Agile Testing Days 2014 Potsdam
Scaling Mapufacture on Amazon Web Services
React state management with Redux and MobX
NEXTjs.pptxfggfgfdgfgfdgfdgfdgfdgfdgfdgfg
Integrating React.js Into a PHP Application
Web enabling your survey business ppt version
SnapyX
SnapyX - ParisJS
6 tips for improving ruby performance
Streamlining Your Applications with Web Frameworks
Website optimization with request reduce
Angular (v2 and up) - Morning to understand - Linagora

Recently uploaded (20)

PPTX
Software Engineering and software moduleing
PDF
Influence of Green Infrastructure on Residents’ Endorsement of the New Ecolog...
PDF
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
PPTX
Management Information system : MIS-e-Business Systems.pptx
PPTX
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
PDF
III.4.1.2_The_Space_Environment.p pdffdf
PDF
Improvement effect of pyrolyzed agro-food biochar on the properties of.pdf
PDF
737-MAX_SRG.pdf student reference guides
PPTX
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
PDF
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
PDF
August 2025 - Top 10 Read Articles in Network Security & Its Applications
PPTX
Fundamentals of safety and accident prevention -final (1).pptx
PPTX
"Array and Linked List in Data Structures with Types, Operations, Implementat...
PDF
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
PDF
Soil Improvement Techniques Note - Rabbi
PDF
Exploratory_Data_Analysis_Fundamentals.pdf
PDF
BIO-INSPIRED ARCHITECTURE FOR PARSIMONIOUS CONVERSATIONAL INTELLIGENCE : THE ...
PPTX
introduction to high performance computing
PPTX
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
PPT
Total quality management ppt for engineering students
Software Engineering and software moduleing
Influence of Green Infrastructure on Residents’ Endorsement of the New Ecolog...
Level 2 – IBM Data and AI Fundamentals (1)_v1.1.PDF
Management Information system : MIS-e-Business Systems.pptx
6ME3A-Unit-II-Sensors and Actuators_Handouts.pptx
III.4.1.2_The_Space_Environment.p pdffdf
Improvement effect of pyrolyzed agro-food biochar on the properties of.pdf
737-MAX_SRG.pdf student reference guides
Graph Data Structures with Types, Traversals, Connectivity, and Real-Life App...
A SYSTEMATIC REVIEW OF APPLICATIONS IN FRAUD DETECTION
August 2025 - Top 10 Read Articles in Network Security & Its Applications
Fundamentals of safety and accident prevention -final (1).pptx
"Array and Linked List in Data Structures with Types, Operations, Implementat...
SMART SIGNAL TIMING FOR URBAN INTERSECTIONS USING REAL-TIME VEHICLE DETECTI...
Soil Improvement Techniques Note - Rabbi
Exploratory_Data_Analysis_Fundamentals.pdf
BIO-INSPIRED ARCHITECTURE FOR PARSIMONIOUS CONVERSATIONAL INTELLIGENCE : THE ...
introduction to high performance computing
Chemical Technological Processes, Feasibility Study and Chemical Process Indu...
Total quality management ppt for engineering students

JS Chicago Meetup 2/23/16 - Redux & Routes