Redux和react-redux和@reduxjs/toolkit

本文介绍了Redux的状态容器概念,其与React的结合,使用原则,工作流程,以及如何通过ReduxToolkit简化开发。还讲解了React-Redux的作用,容器组件和UI组件的区别,以及ReduxDevTools的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这篇我要分享的内容是关于Redux和@reduxjs/toolkit的知识,希望能让大家通过我这篇文章,能更好的对redux有一个更深入的了解!!!

1. Redux

1. 什么是Redux

        Redux 是 JavaScript 应用的状态容器,提供可预测的状态管理
        Redux 可以与 React或其他视图库一起使用,使用原生JS编写。并不依赖于React
        Redux用一个单独的常量状态树(state对象)保存这一整个应用的状态,这个对象不能直接
        被改变。当一些数据变化了,一个新的对象就会被创建

2. Redux的使用原则

        state以单一对象存储在store对象中
        state是只读的(每次都返回一个新的对象)
        使用纯函数reducer执行state更新
了解redux之前我们先来了解一个概念叫做纯函数,那么什么是纯函数呢?

3. Redux的工作流

组件通过dispatch发起更新请求:dispatch(action)
Reducer接收请求
Reducer更新store中所保存的state数据
store通知组件更新组件的状态

4. redux基本使用

引入 createStore ,创建 store 对象
编写reducer函数,修改stroe中的state数据
组件通过 dispatch 方法提交 action reducer
组件调用 getState 方法来渲染数据
通过 subscribe 方法来监听数据的变化,调用setState方法触发render重新渲染
5. 合并reducer
如果我们在一个reducer中管理多个状态的话,这样会很影响性能。也不便于我们维护,所以
我们需要对reducer拆分在进行合并

2.什么是react-redux

官网:https://react-redux.js.org
介绍
        React Redux是Redux的官方React UI 绑定层。它让您的 React 组件从 Redux 存储中读取数
        据,并将操作分派到存储以更新状态
        React Redux 由 Redux 团队维护,并与来自 Redux React 的最新 API 保持同步
        旨在与 React 的组件模型一起使用。您定义如何从 Redux 中提取组件所需的值,并且组件
        会根据需要自动更新
        提供 API使您的组件能够与 Redux 存储交互,因此您不必自己编写该逻辑
        自动实现复杂的性能优化,这样你自己的组件只有在它需要的数据实际发生变化时才会重新
        渲染

2. 为什么要使用react-redux

可以帮助我们订阅store、检查更新数据和触发组件的重新渲染。

3. 容器组件与UI组件

UI组件
        只负责 UI 的呈现,不带有任何业务逻辑
        没有状态(即不使用this.state这个变量)
        所有数据都由参数(this.props)提供
        不使用任何 Redux API
容器组件
        负责管理数据和业务逻辑,不负责 UI 的呈现
        带有内部状态
        使用 Redux API

4. 基本使用

下载 react-redux @reduxjs/toolkit
创建store
创建切片
使用 react-redux 中的 Provider 组件包裹整个根组件,传递store
components/Counter.js 中引入 connect 模块,用于从UI组件中生成容器组件

3. @reduxjs/toolkit

  1. 介绍

                Redux Toolkit包旨在成为编写Redux逻辑的标准方式。它最初的创建是为了帮助解决关于Redux 的三个常见问题
                配置 Redux 存储太复杂了
                我必须添加很多包才能让 Redux 做任何有用的事情
                Redux 需要太多样板代码
                默认包含 redux-thunk ,并启用 Redux DevTools Extension

2. 基本使用

安装
创建store对象
创建reducer切片
通过 dispatch 方法传递actions,触发reducer并渲染
3.在组件中使用
        store/index.js
store/modules/counterSlice.js
store/modules/listSlice.js
components/Counter.js
components/List.js
App.js
index.js
简单来说就是,redux就是创建一个切片对象,在切片对象里定义数据和修改数据方法,然后抛出对象和方法,在store组件中是用来存储不同的切片对象,在组件中使用就是通过导入 useDispatch和useSelector这两个属性来进行数据的操作,其中useSelector是用来获取切片的数据吗,而dispatch是用来调用切片里的方法来进行数据的操作,redux一般运用在较复杂的项目中,使得数据状态保存的更持久!!!
下面我来介绍一下redux的一款调试工具叫做redux-devtools

4. redux-devtools安装

1. 打开这个网址:https://github.com/reduxjs/redux-devtools
2. 进入下载页面
3. 下载压缩包
4. 进行下载
5. chrome浏览器中打开这个页面:chrome://extensions/
6. 解压之前的文件,将其拖拽到这个页面下
这个工具是用来更直观的查看redux中定义的数据,今天就是我要讲的关于redux的相关知识,如有不足,请多指正!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值