react18中react-redux状态管理的实现

react的状态管理还是挺多的现在流行的有以下五种:

  • Recoil
  • MobX
  • XState
  • Redux
  • Context

今天我们来讲一下react众多状态管理之一的redux,虽然这个我不太喜欢用,但是我觉得简单的状态管理谁都会,但是难的就是程序员的分水岭,所以今天来给大家讲一下redux。

下面我们来讲讲redux的优点:

  • 可以在众多组件中传值,突破react单向数据流的限制
  • 不仅支持react还支持vue等主流框架
  • 当然是好用方便啦

接下来我们讲一下啥时候去使用他

  • 在我们有好多组件,但是组件间传值非常困难的时候在使用redux。
  • redux一定要作为最后底牌使用,因为他布局起来有点过程复杂。

接下来我们安装并使用redux

yarn add redux react-redux redux-devtools-extension redux-thunk

安装好了下面我给大家讲一下每个插件是干嘛的

  • redux不用说了状态管理
  • react-redux,这个插件的话,咱这样将:就是redux将组件分为了ui组件和容器组件两类,自然我们平常写方法,页面啥的就叫ui组件,redux提供的叫容器组件,这俩组件构成了父子组件,大家记住我这说的话,下面会用到。
  • redux-devtools-extension这个特别长的是redux官方提供的可以查看状态的ui插件,让我们在很多组件的情况下,也能知道每个组件的数据情况,非常贴心。
  • redux-thunk这个插件可以让redux拥有使用异步操作的能力,本身redux是不支持异步操作的

下面我们开始在react中去部署redux。中间会有点复杂,提倡大家多打两遍代码,毕竟还是内句话,简单 的谁都会,难的才是你和别的程序员的分水岭。

第一步:我们在src目录下创建一个redux的目录作为我们状态管理的文件夹。

第二步:在redux文件夹下创建store.js的文件,作为我们的入口文件

/*
* 该文件专门用于暴露一个store对象,整个应用只有一个store对象*/
 
//创建redux中作为核心的store               支持异步的中间件
import {legacy_createStore as createStore, applyMiddleware} from 'redux'
 
//引入支持异步acton
import thunk from 'redux-thunk'
//引入开发者工具
import {composeWithDevTools} from 'redux-devtools-extension'
import Reducer from './reducer'                     
                            这里为reduces文件这里还没说往下看
export default createStore(Reducer,composeWithDevTools(applyMiddleware(thunk)))

第三步:在redux文件夹下创建actions文件,用来管理我们的动作对象,包括两个一个是type,data

  • type:这个是标识属性
  • data:顾名思义就是数据
/*
* 专门为count组件生成action对象*/
export const increment=data=>({type:"add",data})
export const decrement=data=>({type:"inadd",data})
// 异步action就是指action的值为函数
export const incrementAsync=(data,time)=>{
    return (dispatch)=>{
        setTimeout(()=>{
            dispatch(increment(data))
        },time)
    }
}

第四步:在redux文件夹下创建我们较为重要的reducer.js文件,这个文件为纯函数,里面不允许有任何的操作,加就是加,减就是减,不能有任何的条件或者异步

/*
reduce只管纯函数,不管啥偶数加奇数加等等只是一个纯函数
* 本身就是一个函数*/    //之前的值,传过来的值
                     //prestate初始化状态是null所以得定义一下默认值
const initState=0
export default function countReduce(preState=initState,action){
    const {type,data}=action
    switch (type) {
        case "add":
            return preState+data
        case "inadd":
            return preState-data
        default:
            return preState;
    }
}

第五步:下面我们为兄弟组件,上面提到了哦,兄弟组件传值,没错redux就是利用props传值

在index.js文件中去设置

import store from "./redux/store";
import {Provider} from "react-redux";
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
    <Provider store={store}>
    <App />
    </Provider>
);

下面我们去使用redux,到组件中去使用,我们可以将ui组件和容器组件联合到一起写,根据意思就是使用一个叫connect的单词来使用在组件中引入(因为使用的是react -18的版本推崇hooks和函数组件,下面例子为函数组件)

import {connect} from 'react-redux'
//引入操作方法
import {add,inadd} from '../action'
const app=(props)=>{
    //这里log一下如果存在data说明redux部署成功了函数组件这样取值
    console.log(props.count)
    方法就是
    porps.add()
    return(
            
    )
}              
export default connect(
    //数据
    state=>({count:state}),
    //方法
    {
        add,
        inadd    
    }
)(app)

好啦上面就是部署redux的全部过程,大家按照流程多写两遍,因为redux有点复杂,难懂。

到此这篇关于react18中react-redux状态管理的实现的文章就介绍到这了,更多相关react-redux状态管理内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • javascript Redux的状态管理详解

    所谓的状态管理,就是对应用程序中的数据进行管理. 理念:凡是数据流管理混乱的项目,几乎都上不了线.好的项目,必须有非常良好的数据流管理. 如何使用Redux?记住“3个3”. 第1个三:3个api,createStore.combineReducers.applyMiddleware 第2个三:3个特点,store单一数据源.store只读的.只能通过reducer纯函数来修改store. 第3个三:3个概念,store.action.reducer. 基本概念: state 包含所有数据,用来

  • React全局状态管理的三种底层机制探究

    目录 前言 props context state 总结 前言 现代前端框架都是基于组件的方式来开发页面.按照逻辑关系把页面划分为不同的组件,分别开发不同的组件,然后把它们一层层组装起来,把根组件传入 ReactDOM.render 或者 vue 的 $mount 方法中,就会遍历整个组件树渲染成对应的 dom. 组件都支持传递一些参数来定制,也可以在内部保存一些交互状态,并且会在参数和状态变化以后自动的重新渲染对应部分的 dom. 虽然从逻辑上划分成了不同的组件,但它们都是同一个应用的不同部分

  • React各种状态管理器的解读及使用方法

    首先我们要先知道什么是状态管理器,这玩意是干啥的? 当我们在多个页面中使用到了相同的属性时就可以用到状态管理器,将这些状态存到外部的一个单独的文件中,不管在什么时候想使用都可以很方便的获取. react和vue有些不同,react没有自己专属的状态管理方式.它使用的其实是js相关的状态管理器.我们需要记住的是,视图可以引起状态的改变,而状态的改变会导致视图的二次渲染. 说了这么半天,那么我们在react中到底是怎样使用状态管理器的呢? redux闪亮登场 redux的前身技术是flux,他和fl

  • 40行代码把Vue3的响应式集成进React做状态管理

    前言 vue-next是Vue3的源码仓库,Vue3采用lerna做package的划分,而响应式能力@vue/reactivity被划分到了单独的一个package中. 如果我们想把它集成到React中,可行吗?来试一试吧. 使用示例 话不多说,先看看怎么用的解解馋吧. // store.ts import { reactive, computed, effect } from '@vue/reactivity'; export const state = reactive({ count:

  • react18中react-redux状态管理的实现

    react的状态管理还是挺多的现在流行的有以下五种: Recoil MobX XState Redux Context 今天我们来讲一下react众多状态管理之一的redux,虽然这个我不太喜欢用,但是我觉得简单的状态管理谁都会,但是难的就是程序员的分水岭,所以今天来给大家讲一下redux. 下面我们来讲讲redux的优点: 可以在众多组件中传值,突破react单向数据流的限制 不仅支持react还支持vue等主流框架 当然是好用方便啦 接下来我们讲一下啥时候去使用他 在我们有好多组件,但是组件

  • React状态管理Redux的使用介绍详解

    目录 1. 简介 2. 核心概念 3. redux工作流 4. 模拟redux工作流程 5. 使用redux 6. react-redux 1. 简介 Redux 是 JavaScript 应用的状态容器(对象),提供可预测的状态管理.可以让你开发出行为稳定可预测的应用,运行于不同的环境(客户端.服务器.原生应用),并且易于测试.Redux 除了和 React 一起用外,还支持其它界面库. 解决的问题:多层级组件间通信问题. 2. 核心概念 单一数据源 整个redux中的数据都是集中管理,存储于

  • 详解如何优雅地在React项目中使用Redux

    前言 或许你当前的项目还没有到应用Redux的程度,但提前了解一下也没有坏处,本文不会安利大家使用Redux 概念 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与React没有任何关系,其他UI框架也可以使用Redux react-redux React插件,作用:方便在React项目中使用Redux react-thunk 中间件,作用:支持异步action 目录结构 Tips:与Redux无关的目录已省略 |--src |-- store Redux目录

  • 优雅的在React项目中使用Redux的方法

    或许你当前的项目还没有到应用Redux的程度,但提前了解一下也没有坏处 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与React没有任何关系,其他UI框架也可以使用Redux react-redux React插件,作用:方便在React项目中使用Redux react-thunk 中间件,作用:支持异步action |--src |-- store Redux目录 |-- actions.js |-- index.js |-- reducers.js |-

  • 基于React Context实现一个简单的状态管理的示例代码

    目录 前言 封装一个父组件用来包裹其他子组件 子组件如何获取数据呢 class Component 方式 context.Consumer useContext 总结 参考 前言 在大多数情况下,我们开发项目都需要一个状态管理,方便我们在全局共享状态库,在React生态里比较流行的几个库 redux.mobx.recoil 但是对于小项目,我们完全可以自己封装一个状态管理,减少一个包的安装就可以减小打包以后的项目体积. 主要分两步: 封装一个顶层组件提供数据 子组件获取数据和更新数据 封装一个父

  • Mobx实现React 应用的状态管理详解

    目录 MobX 从一个 demo 开始 创建类并将其转化成可观察对象 使用可观察对象 MobX 与 React 集成 在组件中使用可观察对象 1. 访问全局的类实例 2. 通过 props 3. 通过 React Context 4. 在组件中实例化 observable class 并存储它的实例 5. 在组件中调用 observable 方法创建可观察对象 6. 在函数组件中使用 useLocalObservable 让组件具备观察能力 总结 MobX MobX 是一个状态管理库,它会自动收

  • React Redux应用示例详解

    目录 一 React-Redux的应用 1.学习文档 2.Redux的需求 3.什么是Redux 4.什么情况下需要使用redux 二.最新React-Redux 的流程 安装Redux Toolkit 创建一个 React Redux 应用 基础示例 Redux Toolkit 示例 三.使用教程 安装Redux Toolkit和React-Redux​ 创建 Redux Store​ 为React提供Redux Store​ 创建Redux State Slice​ 将Slice Reduc

随机推荐