Redux 状态管理03-组件解耦

index.js

import React from "react"
import ReactDom from "react-dom"
import { createStore } from "redux"
import App from "./App"
import { counter,addGun ,ReduceGun,FakerGun} from "./index.redux"


const store = createStore(counter)
function render (){

    ReactDom.render(<App store = {store} addGun = {addGun} ReduceGun = {ReduceGun}FakerGun = {FakerGun} />,document.getElementById("root"))

}
render ()
store.subscribe(render)

App.js

import React from "react"
import { Button } from "antd-mobile"

class App extends React.Component{
    // constructor(props){
    //     super(props);
    // }
    render(){
        const store = this.props.store
        const num = store.getState()
        const addGun = this.props.addGun
        const ReduceGun = this.props.ReduceGun
        const FakerGun = this.props.FakerGun
        return(
            <div>
                <h1>现在有机枪{num}把</h1>
                <Button type="primary"  onClick={()=>store.dispatch( addGun())}>申请武器</Button>
                <Button type="primary"  onClick={()=>store.dispatch( ReduceGun())}>收缴武器</Button>
                <Button type="primary"  onClick={()=>store.dispatch( FakerGun())}>抢武器</Button>
            </div>
        )
    }
}

export default App

index.redux.js



const ADD_GUN = "加机关枪"
const REMOVE_GUN = "减机关枪"
const FAKE_GUN = "抢机关枪"


/*reducer*/
export function counter (state=0,action){
    switch(action.type){
        case ADD_GUN:
            return state + 1
        case REMOVE_GUN:
            return state - 1
        case FAKE_GUN:
            return state * 10
        default:
            return 10
    }
}

export function addGun(){
    return {type:ADD_GUN}
}

export function ReduceGun(){
    return {type:REMOVE_GUN}
}

export function FakerGun(){
    return {type:FAKE_GUN}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值