• react redux demo


    //constants.js

    // 定义常量

    export const ADD_COUNT = 'ADD_COUNT';

    export const SUB_COUNT = 'SUB_COUNT';

    export const APPEND = 'APPEND';

    export const REMOVE = 'REMOVE';

    //action.js

    import {

    ADD_COUNT,

    SUB_COUNT,

    APPEND,

    REMOVE

    } from './constants';

    // 利用action来修改状态

    export const addAction = (num)=>{

    return {type:ADD_COUNT, num: num};

    };

    export const subAction = (num)=>{

    return {type:SUB_COUNT, num: num};

    };

    export const append = ()=>{

    return {type:APPEND};

    };

    export const remove = ()=>{

    return {type:REMOVE};

    //personReducer.js

    import {APPEND,REMOVE} from './constants'

    // 1.定义一个状态(数据)

    let initialState = {

    name: 'Tom'

    }

    // 利用reducer将store和action串联起来

    function personReducer(state = initialState, action){

    console.log(state,action)

    switch(action.type){

    case APPEND:

    return { name: state.name +'sb1'};

    case REMOVE:

    return { name: state.name + 'sb2'};

    default:

    return state;

    }

    }

    export default personReducer

    //reducerNum.js

    import {ADD_COUNT,SUB_COUNT} from './constants'

    // 1.定义一个状态(数据)

    let initialState = {

    count: 0

    }

    // 利用reducer将store和action串联起来

    function reducerNum(state = initialState, action){

    console.log(state,action)

    switch(action.type){

    case ADD_COUNT:

    return { count: state.count + action.num};

    case SUB_COUNT:

    return { count: state.count + action.num };

    default:

    return state;

    }

    }

    export default reducerNum

    //reducer.js

    import {combineReducers } from 'redux'

    import reducerNum from './reducerNum';

    import personReducer from './personReducer'

    const reducers = combineReducers({

    reducerNum,

    personReducer

    });

    export default reducers;


     

    //store.js

    import { createStore } from 'redux'

    import reducers from './reducer'

    // 利用store来保存状态(state)

    const store = createStore(reducers);

    export default store

    //Rudexpage.js 使用redux

    import React,{useEffect,useState} from 'react'

    import store from '../redux/store'

    import {addAction,subAction,append,remove} from '../redux/action'

    export default function Rudexpage() {

    const [count,setCount] =useState(store.getState().reducerNum.count)

    const [name,setName] =useState(store.getState().personReducer.name)

    useEffect(()=>{

    store.subscribe(()=>{

    setCount(store.getState().reducerNum.count)

    setName(store.getState().personReducer.name)

    })

    })

    const changeADD=(num)=>{

    store.dispatch(addAction(5))

    }

    const changeremove=(num)=>{

    store.dispatch(subAction(-5))

    }

    const changeAPPEND=()=>{

    store.dispatch(append())

    }

    const changeREMOVE=()=>{

    store.dispatch(remove())

    }

    return (

    初始数据:{count}

    修改后的数据{ store.getState().reducerNum.count}

    初始数据:{name}


     

    )

    }

  • 相关阅读:
    【OS】新国立nus操作系统知识点(中文版)
    git reset 与 git revert 用法(回退远程提交)
    浅谈分布式唯一ID生成方案
    如何系列 如何使用ff4j实现功能迭代
    笙默考试管理系统-MyExamTest----codemirror(39)
    java众筹网计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    Quartz + SpringBoot 实现定时任务(多任务,多执行时间)代码模板(直接CV即可)
    一棵完全二叉树的第7层(根节点为第0层)有12个叶子节点,求整棵树最多有多少个节点和最少有多少个节点
    RabbitMQ 学习(三)-- Work Queues
    Windows下 开机自启动jar包
  • 原文地址:https://blog.csdn.net/wandoumm/article/details/80256091