• 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}


     

    )

    }

  • 相关阅读:
    针对公网IP签发的IP地址SSL证书
    【兔子王赠书第2期】《案例学Python(基础篇)》
    新一代杂志新一代杂志社新一代编辑部2022年第13期目录
    SpringBoot整合Activiti7——任务监听器(七)
    操作系统实验 & bochs 环境配置
    EOS账户映射及key、account、wallet
    9、动态SQL
    ESP32网络开发实例-Web控制8路继电器
    git原来还可以这么用?你不知道的自定义命令
    搭建自己的pypi服务器
  • 原文地址:https://blog.csdn.net/wandoumm/article/details/80256091