a.需要在根文件中引入 store 实例 b.在 react-redux 库中引入私有组件 c.使用组件包裹根页面 并在组件中绑定 store 实例
1.State: 与 Vuex 相似,统一存储状态值 2.Action:是一个对象,译为:行为;包含两个字段 a.type 类型,事件相关类型,必传 b.payload 可传参数值 选传 3.Reducer:是一个函数,绑定了所定义的修改函数的状态,也可以是一个对象,里面包含多个 定义的修改状态,进而合成一个大的 reducer
为了便携开发,采用 hook 方式 useSelector():返回 state 中的状态值 let xxx = useSelector((state) => {return state...})
采用 dispath 触发 action 行为 使用 useDispath():触发 action 所定义的类型方法 let dispath = useDispath() dispatch(方法名())
1.从 RTK 中引入创建 store 的方法 configureStore 2.创建 store const store = configureStore({ reducer: { 定义的修改函数状态,... } }) 3.定义修改函数状态方法 4.抛出 store 5.如需使用定义的函数方法 需在讲方法单独抛出
在 RTK 包中引入 createSlice 函数来创建一个 slice 对象。
const slice = createSlice(options) 其中 options 对象包含以下常用属性
name:给 action 对象的 type 属性指定命名空间
initialState:指定状态的初始值
reducers:在该对象中定义各种修改状态的 reducer 函数
reducer 函数都可以接收两个参数:state 整个 slice 下的状态对象 以及 action 对象 slice 中 reducer 函数都可以直接通过 state 修改状态,无需在返回新状态
Redux原生不支持异步处理机制,需要我们通过一些中间件去完成。 好在,Redux Toolkit中内置了Thunk中间件可以完成异步任务处理。因此 在UI组件中调用dispatch时,不仅可以传入一个Action对象,还可以传入一个thunk函数,由其处理异步任务有结果后,在dispatch一个action去修改状态。
安装命令:npm install thunk 1.可以是普通函数 也可以异步函数 2.函数会接收两个参数:
dispatch:触发异步中所调用的函数
getState:读取状态库store中所有的初始值
在store部分:
export function asyncXXX(dispatch,getState) {
let state = getState();
dispatch(同步方法())
}
在页面部分:
import {asyncXXX} from '路径'
dispatch(asyncXXX);
创建: xxx.module.css 使用:import 名字 from '路径' 在标签部分:
< className={名字.xxx}></>
创建 react 项目: 1.npx create-react-app 项目名 2.npm install create-react-app create-react-app 项目名
3.起项目:在当前文件的根目录起项目 命令在 package.json 文件夹中 scripts 下