IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: 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 入门学习(1) -> 正文阅读

[JavaScript知识库]Redux 入门学习(1)

Redux学习笔记

redux 和react没有必然关系,redux可以应用于各种框架,包括jquery,甚至js都可以使用redux,只不过redux和react更加搭配。redux也推出了专门应用于react的react-redux。

1. Redux概述
  • Redux就是一个JavaScript容器,用来进行全局的状态管理
  • Redux三大核心
    • 单一数据源头(所有的state的数据都存储在一个Object Tree中)
    • State只读(要想修改只能通过发送action来进行修改)
    • 使用纯函数来进行修改(使用纯函数可以提高复用性,reduce就是一个纯函数,用来接收action )
2. Redux组成
  • State状态
    • DomainState :服务器返回的State
    • UI State: 关于当前组件的State
    • APP State: 全局State
  • Action事件
    • 本质就是一个JS对象
    • 必须包含type属性
    • 只描述了有事情发生,并没有描述如何去更新State
  • Reducer
    • 本质就是函数
    • 响应发送过来的action
    • 函数接收两个参数,第一个是初始化state,第二个是发送过来的action
  • Store
    • 用来吧action和reducer关联到一起的
    • 通过createStore 来构建store
    • 通过subscribe 来注册监听
    • 通过dispatch来发送action
3.Redux 入门案例
数据流转

就是通过store.dispatch 来进行更新store中的数据,然后会按照reducer方法中的处理逻辑来更新store的数据,组件会通过store.subscriber监听来获取更新的数据,可以通过setState等方法来更新数据进而重新更新组件

简单步骤
  1. 构建action对象,通过创建一个函数,来返回一个对象,返回的action对象需要有type属性,否则会报错。

    action.js

    export const sendAction = (action)=>{
        return{
            type: "sendAction",
            ...action
        }
    }
    
  2. 构建reducer,用来响应action,然后通过action的type值来进行单独的数据处理并将数据return 给store。

    reducer.js

    const initState = {value: "这是sate默认值"};
    
    export const reducer = (state = initState, action ) => {
        console.log("reducer",state,action)
        switch (action.type) {
            case "sendAction":
                return Object.assign({},state,action);
    
            default :
                return state;
        }
    }
    
    
  3. 构建store,通过redux中的createRedux来创建store,createStore需要传进 构建的reducer函数,这样就会按照定义的reducer函数的处理逻辑来处理数据。

    store.js

    import {createStore} from "redux";
    
    import {reducer} from "./reducer";//自定义的reducer函数
    
    export const store = createStore(reducer);
    
  4. 利用store.subscriber()来注册监听,接收store更新后的数据。

    home/index.js

    store.subscribe(() => {
                console.log("subscribe",store.getState())
            })
    
  5. 当利用store.dispatch来发送一个action的时候,就能触发监听了,在监听中通过store.getState()就可以拿到更新后的值了。

    home/index.jsx

    import React, {Component} from 'react';
    import {sendAction} from "../action";
    import {store} from "../store";
    
    class Home extends Component {
        constructor(props){
            super(props);
            this.state = {
                actionValue: "",
            };
    
        }
        componentDidMount() {
            //接收store更新的数据
            store.subscribe(() => {
                console.log("subscribe",store.getState());
                this.setState({actionValue: store.getState().value});
            })
        }
        // 发送action
        handleAction = () =>{
            const action = sendAction({value:"这是一个action"});
            store.dispatch(action);
        }
        render() {
            return (
                <div>
                    <button onClick={this.handleAction}>发送一个action</button>
                    <div>
                        <h4>这是action的值: {this.state.actionValue}</h4>
                    </div>
                </div>
            );
        }
    }
    
    export default Home;
    
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-29 16:13:51  更:2021-11-29 16:15:04 
 
开发: 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年5日历 -2024/5/21 1:24:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码