react中使用reflux进行全局状态管理最简单的案例

之前写过一个react中使用reflux进行全局状态管理的博客,由于刚从vue转到react,还有很多不熟悉的地方,有一些问题没有理解透彻,今天再写一个简单案例描述一下reflux是如何进行全局状态管理的。
#创建react项目并进入项目根目录
create-react-app refluxtest
cd refluxtest
#安装reflux
npm install reflux
#创建action与store相关文件
countAction.js

//引入reflux模块
import Reflux from "reflux";
//创建action并注入两个事件(也可以叫动作)countAdd、countSub
const CountAction = Reflux.createActions(["countAdd","countSub"]);

export default CountAction;

countStore.js

//引入reflux模块
import Reflux from "reflux"
//引入事件(动作)
import CountAction from "../action/countAction.js";

//这里类必须继承自Reflux.Store
class CountStore extends Reflux.Store {
    constructor() {
        super();
        //监听加1与减1动作并执行事件函数
        this.listenTo(CountAction.countAdd, this.onCountAdd);
        this.listenTo(CountAction.countSub, this.onCountSub);
        //这里填写全局的属性状态
        this.state = {
            count: 0
        }
    }

    //countAdd事件执行的函数,这里的写法是固定的on + 首字母大写的动作事件
    onCountAdd = () => {
        this.setState({
            count: this.state.count + 1
        })
    }
    //countSub事件执行的函数
    onCountSub = () => {
        if (this.state.count > 0) {
            this.setState({
                count: this.state.count - 1
            })
        }
    }
}

export default CountStore

#创建页面文件
refluxTest.js

//引入reflux模块
import Reflux from "reflux"
//引入action与store
import CountAction from "./action/countAction.js";
import CountStore from "./store/countStore.js";

//这里类必须继承自Reflux.Component
class RefluxText extends Reflux.Component {
    constructor(props) {
        super(props);
        //state里面你可以填入本页面的状态属性
        this.state = {};
        //注入全局状态
        this.store = CountStore;
    }

    render() {
        return (
            <div>
                <div>{this.state.count}</div>
                <button onClick={CountAction.countAdd}> +1</button>
                <button onClick={CountAction.countSub}> -1</button>
            </div>
        )
    }
}

export default RefluxText

#在App.js中引用页面

import './App.css';
import RefluxText from "./refluxTest";
function App() {
  return (
      <RefluxText></RefluxText>
  );
}

export default App;

#查看效果,运行命令
npm start
至此一个简单的reflux状态管理就完成了。
项目源码下载地址:https://download.csdn.net/download/u012211003/13991862

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值