Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

7 Redux challenges

React/Redux is going mainstream in modern SPA development. Be aware of most difficult parts

  • Soyez le premier à commenter

7 Redux challenges

  1. 1. 7 Redux Challenges Jan 20, 2016
  2. 2. Redux Redux is a predictable state container for JavaScript apps. It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. On top of that, it provides a great developer experience, such as live code editing combined with a time traveling debugger. http://redux.js.org/ https://egghead.io/lessons/javascript-redux-the-single-immutable-state-tree?series=getting-started-with-redux
  3. 3. Redux Predictable state container? Yes Run in different environments (client, server, and native)? Yes, on client and server. Not yet as you might expect on mobile and native Great developer experience? Yes, if you can become familiar with ES6, WebPack, Babel, npm tools
  4. 4. Redux Live code editing is great, if you configure WebPack with CSS Modules Time traveling debugger … hmm … not really important IMHO What’s important? Your SPA app keeps its state while you do component modifications. Welcome to Functional Programming approach!
  5. 5. Functional Revolution
  6. 6. React.js lifecicle
  7. 7. Redux Challenges Cancelling Promises, server-side (isomorphic) rendering with async calls #1 Async programming Research why libraries like superagent-bluebird-promise exists https://github.com/KyleAMathews/superagent-bluebird-promise Redux on the Server http://rackt.org/redux/docs/recipes/ServerRendering.html
  8. 8. Redux Challenges Be aware of dom mutations from libraries like D3 or jQuery #2 Dom mutations Wrap and isolate side effects. Review D3 chart css and js code Use minimum
  9. 9. Redux Challenges two-way binding problem #3 Working with url bar If possible, avoid using react routing, rackt history, etc Do you really need to put all app functionality in one SPA? Can you separate user account management from main app?
  10. 10. Redux Challenges componentDidMount might causing ad-hoc effects as it dispatch actions in order to get the app to start an operation #4 Piggybacking componentDidMount Generate data on server-side, not in reducer after firing from componentDidMount
  11. 11. Redux Challenges React/Redux community claims to be functional ... OOP, classes, callbacks, etc are commonplace ... #5 Imperative side-effects Study Functional Programming in ES6 https://github.com/reactima/reactima-redux-ecosystem/blob/master/JS.md Google more about JS data structures, Immutable.js … Be aware it’s hard to get rid of old habits. Ramda.js source code and test are great for learning. Lodash has it all! http://ramdajs.com/ https://lodash.com/
  12. 12. Redux Challenges Overhead with action creator, reducer aka "100 lines of Redux problem” #6 Mental Overhead Read redux source code it!
  13. 13. Redux Challenges #7 Redux Saga problem Do you really need reactive streams?
  14. 14. Thank you! Ilya Sidorov @reactima Interested to talk? Let’s have a skype call: ilya.sidorov 1@ilya1.com https://www.linkedin.com/in/reactima https://github.com/reactima/