react - 4.redux

react中,redux是一个用于状态管理的js库,并不是react插件库,用于管理react应用中多个组件共享的状态。
但存在耦合性高的缺点
使用

1.安装

npm install redux --save

2.创建redux文件夹,
|–store.js
|–reducers.js
|–actions.js
|–actionTypes.js

3.reducers.js用于操作state中的数据

import {INCREMENT,DECREMENT} from './action-types'
    export function counter(state=0,action){
        switch(action.type){
            case INCREMENT:
                return state + action.data;
            case DECREMENT:
                  return state - action.data;
             default:
                 return state;     
        }
    }
action-typs.js
    export const INCREMENT = 'INCREMENT';
    export const DECREMENT = 'DECREMENT'
actions.js
    import {INCREMENT,DECREMENT} from './action-types.js'
    export const increment = (number) =>({type:INCREMENT,data:number})
    export const decrement = (number)=>({type:DECREMENT,data:number})
store.js文件
    import {createStore} from 'redux'
    import {counter} from './reducers.js'
    const store = createStore(counter)
    export default store;
index.js
    import React from 'react'
    import ReactDOM from 'react-dom'
    import App from './views/app.jsx'
    import store from './redux/store.js'
    function render(){
       ReactDOM.render(<App store={store} />,document.getElementById('root')) 
    }
    //1.初始化渲染
    render()
    //接受到共享数据改变,就选人视图
    store.subscribe(render)
组件使用
    import {increment,decrement} from './redux/actions.js'
    render(){
        return(
            <>
                <button onClick={()=>this.incrementHandle()}> + </button>
                 <strong>{this.props.store.getState()}</strong>
                 <button onClick={()=>this.decrementHandle()}> - </button>
            </>
        )
    }
    incrementHandle(){
        this.props.store.dispatch(increment(10))
    }
    decrementHandle(){
        this.props.store.dispathc(decrement(1))
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值