| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> Redux 状态管理 -> 正文阅读 |
|
[JavaScript知识库]Redux 状态管理 |
redux 中文文档?https://www.redux.org.cn/ redux官网?https://redux.js.org/ 所谓的状态管理,就是对应用程序中的数据进行管理。 理念:凡是数据流管理混乱的项目,几乎都上不了线。好的项目,必须有非常良好的数据流管理。 如何使用Redux?记住“3个3”。 ? - 第1个三:3个api,createStore、combineReducers、applyMiddleware ? - 第2个三:3个特点,store单一数据源、store只读的、只能通过reducer纯函数来修改store。 ? - 第3个三:3个概念,store、action、reducer。 基本概念: - state 包含所有数据,用来给store提供数据 - store 就是状态管理数据,可以被React共享的数据,数据容器,保存数据的地方 - action 是一种信号,可以用来修改state的信号,固定格式:{type,payload},可以这样理解,type是邮件标题,payload是邮件内容 示例:在src目录下新建store文件夹,新建index.js
在src下新建目录views,good,GoodList.js
App.js
打印GoodList props为空,直接使用props是拿不到数据的 问题:在这个函数式组件中,如何与redux关联 答案:1.connect高阶组件,它是把redux相关的数据和方法,放到props上。?2.hooks,它是直接访问,与props无关 - connect??语法:connect(mapStateToProps,mapDispatchToProps) 理解:mapStateToProps用于把store数据放在props上,mapDispatchToProps用于把修改store的方法放到props上 改造views/good/GoodList.js:
store会接收到信号,改造store/index.js:
最终效果: 当然,代码中还有很多可以改进的地方,例如,通常我们不使用connect,而是使用Hooks函数来直接访问store里面数据,而无需通过props - useSelector() 用于访问上下文中的redux数据 - useDispatch() 得到dispatch方法,可以向redux派送 将views/good/GoodList.js改造成hooks函数写法,极大减少代码量
以及我们还可以通过produce来实现深复制:?produce:第一个参数就是传入旧的state,经过内部深复制,在第二个函数中可以拿到深复制的结果;在回调函数中对深复制的结果进行修改(加工),最终修改的结果就是produce的返回值, 将store/index.js改造如下:
还可以使用 logger 中间件更加直观的查看数据流 import { createStore, combineReducers, applyMiddleware } from 'redux' import logger from 'redux-logger' const store = createStore(reducer, applyMiddleware(logger)) export default store 使用效果如图: redux工作原理示意图? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 11:04:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |