当前位置: 首页 > news >正文

redux实现数据存取的简单写法,简单的写了一下,相信你应该可以看得懂的

当我们创建了react项目之后 并安装了redux (我习惯用yarn安装 yarn add redux )
了解一下 redux 状态管理工具

redux 三大原则

1-1 单一数据源(store是唯一的)
1-2 State是只读的(一旦修改就会产生新的状态)
1-3 使用纯函数来执行修改(同样的输入必定得到同样的输出。不能改变参数)

首先 在创建项目之后 的 src文件夹下创建store文件夹作为仓库,建立 index.js根文件

import { createStore } from 'redux' //引入createStore
import reducer from './reducer'// reducer是修改状态的纯函数 在外部创建一个纯函数的reducer.js文件,引入进来
var store = createStore(reducer);// 把reducer传递赋值给store 
export default store;// 导出store

1-5 reducer.js文件 —rxd快捷样式
大致内容是

const initState = {
  value: 1  //这里是存数据的地方
}
export default (state = initState, { type, payload }) => {
  switch (type) {
  //这个位置是改变数据的地方 ,暂时先不说,先看看怎么存取。后期补上怎么改变数据。
    // case "TYPENAME":
    //   return { ...state, ...payload }//修改数据
    default:
      return state
  }
}

1-6 在src文件夹下建立One文件夹下在建一个一个组件 index.js 并引入到App组件中 ,渲染
在one组件中的index.js中
进行取数据
操作如下

import React, { Component } from 'react'
import store from '../../store'
export default class One extends Component {
  constructor(props) {
    super(props)
    this.state = {
      value: store.getState().value  ///这个地方就是取数据 也就是通过 getState取数据
    }
  }
  render() {
    return (
      <div>
        One组件
        {this.state.value} //取数据之后进行渲染
      </div>
    )
  }
}

相关文章:

  • 如何借助 NoSQL 提高 JPA 应用性能
  • 面向对象三大基本特性 三大特性是:封装,继承,多态
  • CentOS-5.6-x86_64 下搭建DNS服务器
  • 什么是值传递和引用传递
  • nodejs的调试(node-inspector)
  • Es6中我常用的新特性总结
  • es6箭头函数和普通函数区别
  • 类加载机制
  • 简述回流和重绘,简单的表达 以及v-if和v-show的区别
  • 高性能web建站规则(CDN)
  • js事件轮询的理解,相信可以对你有所帮助
  • 团队作业6
  • 常用浏览器兼容性代码
  • Python+selenium+eclipse+pydev自动化测试环境搭建
  • js判断对象是否为空对象的常见的5种方法
  • CSS居中完全指南——构建CSS居中决策树
  • Docker: 容器互访的三种方式
  • export和import的用法总结
  • JavaWeb(学习笔记二)
  • node-sass 安装卡在 node scripts/install.js 解决办法
  • PAT A1017 优先队列
  • PHP 小技巧
  • PHP的类修饰符与访问修饰符
  • Vue 2.3、2.4 知识点小结
  • 计算机在识别图像时“看到”了什么?
  • 离散点最小(凸)包围边界查找
  • 新版博客前端前瞻
  • 【云吞铺子】性能抖动剖析(二)
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (Ruby)Ubuntu12.04安装Rails环境
  • (附源码)springboot美食分享系统 毕业设计 612231
  • (九)信息融合方式简介
  • (力扣)循环队列的实现与详解(C语言)
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (五)MySQL的备份及恢复
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (一)RocketMQ初步认识
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)linux 命令大全
  • ***利用Ms05002溢出找“肉鸡
  • *2 echo、printf、mkdir命令的应用
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net
  • .Net FrameWork总结
  • .NET 命令行参数包含应用程序路径吗?
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...
  • .Net6 Api Swagger配置
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET处理HTTP请求
  • .Net环境下的缓存技术介绍
  • .stream().map与.stream().flatMap的使用
  • @Autowired注解的实现原理