Slide 1

Slide 1 text

redux - how does it work? kod do prezentacji: https://github.com/michalczukm/ngrx-store-short-example Michał Michalczuk

Slide 2

Slide 2 text

Redux 2 Czym jest Redux? (za dokumentacją) • 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.

Slide 3

Slide 3 text

Redux 3 Czym jest Redux? (za dokumentacją) • 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. Konkretna biblioteka

Slide 4

Slide 4 text

Redux a Flux 4 • Influences Redux evolves the ideas of Flux, but avoids its complexity by taking cues from Elm.

Slide 5

Slide 5 text

To kojarzy mi się tylko z React-em 5 Dlaczego? ● flux jako wzorzec został opisany przez Facebook-a ● Flux jako biblioteka został napisany przez Facebook-a ● Facebook + React

Slide 6

Slide 6 text

Ale … można ich używać niezależnie od frameworku 6 ● wiele implementacji fluxa ● wiele bindingów do konkretnych bibliotek, jak angularJS, angular, vue.js, jquery, react

Slide 7

Slide 7 text

redux - jako wzorzec 7 http://slides.com/jenyaterpil/redux-from-twitter-hype-to-production

Slide 8

Slide 8 text

redux - jako wzorzec 8 http://slides.com/jenyaterpil/redux-from-twitter-hype-to-production

Slide 9

Slide 9 text

redux - 3 zasady 9 1. Single source of truth • The state of your whole application is stored in an object tree within a single store. { todos: [ { text: 'Consider using Redux', completed: true, }, { text: 'Keep all state in a single tree', completed: false } ] }

Slide 10

Slide 10 text

redux - 3 zasady 10 2. State is read-only • The only way to change the state is to emit an action, an object describing what happened. store.dispatch({ type: 'ADD_TODO', text: 'Get it done!' })

Slide 11

Slide 11 text

redux - 3 zasady 11 3. Changes are made with pure functions • To specify how the state tree is transformed by actions, you write pure reducers. function todos(state = [], action) { switch (action.type) { case 'ADD_TODO': return [ ...state, { text: action.text, completed: false } ] default: return state } }

Slide 12

Slide 12 text

Coding Session Code show session Show me the code

Slide 13

Slide 13 text

No dobra, ale .. Co z komunikacją z API? Co z requestami HTTP? 13

Slide 14

Slide 14 text

Komunikacja z API 14 http://slides.com/jenyaterpil/redux-from-twitter-hype-to-production

Slide 15

Slide 15 text

Coding Session Code show session Show me the code

Slide 16

Slide 16 text

Co dalej? 16 http://slides.com/jenyaterpil/redux-from-twitter-hype-to-production

Slide 17

Slide 17 text

Co dalej? 17 http://slides.com/jenyaterpil/redux-from-twitter-hype-to-production

Slide 18

Slide 18 text

Co dalej? 18 http://slides.com/jenyaterpil/redux-from-twitter-hype-to-production

Slide 19

Slide 19 text

No dobra, To może jakiś przykład z Angular? ngrx/store 19

Slide 20

Slide 20 text

Coding Session Code show session Show me the code

Slide 21

Slide 21 text

Podsumowanie 21

Slide 22

Slide 22 text

Linki / Referencje 22 kod do prezentacji: https://github.com/michalczukm/ngrx-store-short-example redux: ● http://slides.com/jenyaterpil/redux-from-twitter-hype-to-production ● http://redux.js.org/docs/introduction/ThreePrinciples.html ● redux + rxjs + react: http://rudiyardley.com/redux-single-line-of-code-rxjs/ ● jquery + Redux: https://codepen.io/mdd/pen/wGRqbw/?editors=1010 ● http://www.sohamkamani.com/blog/2016/06/05/redux-apis/ ngrx/store: ● https://github.com/ngrx/example-app ● http://onehungrymind.com/build-better-angular-2-application-redux-ngrx/

Slide 23

Slide 23 text

Dziękuję za uwagę