26
007. REDUX MIDDLEWARE Presenter: Binh Quan

007. Redux middlewares

Embed Size (px)

Citation preview

Page 1: 007. Redux middlewares

007. REDUX MIDDLEWAREPresenter: Binh Quan

Page 2: 007. Redux middlewares

ReactJS - Redux Middleware

Without middleware

Page 3: 007. Redux middlewares

ReactJS - Redux Middleware

With middlewares

Page 4: 007. Redux middlewares

ReactJS - Redux Middleware

With middlewares

Page 5: 007. Redux middlewares

ReactJS - Redux Middleware

With middlewares

Page 6: 007. Redux middlewares

ReactJS - Redux Thunk

❖ Allows you to write action creators that return a function instead of an action.

❖ Used to delay the dispatch of an action❖ or to dispatch only if a certain condition is met

Package name: redux-thunk

Github: https://github.com/gaearon/redux-thunk

Page 7: 007. Redux middlewares

ReactJS - Implement middleware to Store

Without middleware

With middleware

Page 8: 007. Redux middlewares

ReactJS - Implement middleware to StoreWith middleware - method #1

With middleware - method #2

Page 9: 007. Redux middlewares

ReactJS - Implement middleware to Store

With single middleware

With multiple middleware

Page 10: 007. Redux middlewares

ReactJS - Redux Thunk

Normal action Thunk action Thunk with conditional dispatch

Page 11: 007. Redux middlewares

ReactJS - HTTP Clients

fetch axios

Github: https://github.com/mzabriskie/axiosGithub: https://github.com/github/fetch

Get JSON content

Send POST data

Get JSON content

Send POST data

Page 12: 007. Redux middlewares

ReactJS - HTTP Clients

Benefits of Axios over Fetch

# Feature Axios Fetch

1 Allow data transforming before request is made YES NO

2 Interceptors: Alter request or response YES NO

3 XSRF protection YES NO

4 Allow aborting a request YES NO

5 Request timeout support YES NO

6 Safari support YES With Polyfill

7 Upload progress support YES NO

Page 13: 007. Redux middlewares

ReactJS - Poor Practice API call

Page 14: 007. Redux middlewares

ReactJS - Redux Practice API call

Page 15: 007. Redux middlewares

ReactJS - Using AxiosReact Component Redux Actions

Page 16: 007. Redux middlewares

ReactJS - Redux API

❖ redux-thunk itself doesn’t implement any HTTP Client❖ Generate actions and reducers for making AJAX calls to API

endpoints❖ Github: https://github.com/lexich/redux-api

Page 17: 007. Redux middlewares

ReactJS - Redux-api configurationFolder structures users.js

Page 18: 007. Redux middlewares

ReactJS - Redux-api configurationFolder structures axios.js

Page 19: 007. Redux middlewares

ReactJS - Redux-api configurationFolder structures posts.js

Page 20: 007. Redux middlewares

ReactJS - Redux-api configurationFolder structures index.js

Page 21: 007. Redux middlewares

ReactJS - Redux-api configuration

Reducers (reducers/index.js) Chrome console log

Page 22: 007. Redux middlewares

ReactJS - Redux-api configuration

Create store with API reducers

Page 23: 007. Redux middlewares

ReactJS - Redux-api configuration

Dispatch an API action

Page 24: 007. Redux middlewares

ReactJS - Redux-api configuration

Dispatch an API action

Page 25: 007. Redux middlewares

Next:Redux Saga

Page 26: 007. Redux middlewares

Now Demo