react redux 基础

2022-08-06  本文已影响0人  苍老师的眼泪

安装:

yarn add redux react-redux
yarn add redux-devtools --dev

三大原则:

使用:

1. 定义 store

function todoApp(state = {}, action) {
  return {
    visibilityFilter: visibilityFilter(state.visibilityFilter, action),
    todos: todos(state.todos, action)
  }
}

它表示整个应用的 state 对象由 visibilityFilter 和 todos 部分组成(当然实际的应用可能远远不止这么简单)。reducer visibilityFilter 和 reducer todos 的调用分别返回了各自的部分。这种应用的 state 属性名和响应的 reducer 函数名一致时,可以借助于 react-redux 的 combineReducers 简化代码:

const todoApp = combineReducers({
  todos,
  visibilityFilter
})

最终,todoApp就是我们整个应用的 state。

2. 将 store 与 react 组件关联起来

let store = createStore(todoApp)
<Provider store={store}>
    <App />
</Provider>

其它

  1. 技术上讲,容器组件就是使用 store.subscribe() 从 Redux state 树中读取部分数据,并通过 props 来把这些数据提供给要渲染的组件。你可以手工来开发容器组件,但建议使用 React Redux 库的 connect() 方法来生成,这个方法做了性能优化来避免很多不必要的重复渲染。使用 connect() 前,需要先定义 mapStateToProps 这个函数来指定如何把当前 Redux store state 映射到展示组件的 props 中。
  2. 除了读取 state,容器组件还能分发 action。类似的方式,可以定义 mapDispatchToProps() 方法接收 dispatch() 方法并返回期望注入到展示组件的 props 中的回调方法。
实操总结:

redux api:

import { createStore } from 'redux'
import { Provider } from 'react-redux'

import { combineReducers } from 'redux'

import { connect } from 'react-redux'

import { createStore, applyMiddleware } from 'redux'
import thunkMiddleware from 'redux-thunk'
上一篇 下一篇

猜你喜欢

热点阅读