封装redux中的createStore

Redux作为React的状态管理库,其核心在于createStore。该函数维护状态state,并返回的store对象具备getState、dispatch和subscribe等方法。getState允许获取state但禁止直接修改,修改状态需通过dispatch,而subscribe用于监听并响应状态变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

redux用于react中的状态管理,其中不能直接修改redux中的状态,需要通过dispatch方法才能修改react中的状态。

createStore函数中存放着状态信息state,它的执行结果返回一个store对象,返回的对象包含:

  • getState(获取store中的state状态信息,但是不能直接修改store中的state信息)
  • dispatch(修改store中的state信息)
  • subscribe(用于订阅事件)
<div>
    <div id="title"></div>
    <div id="content"></div>
</div>
<script>
    function createStore(reducer) {
    
        // 定义store对象中的状态信息对象,此处必须是只定义不赋值,因为这样在下面的dispatch初始化state时才能使用默认值初始化state
        let state;
        // listener是一个事件池,存储订阅的方法
        let listener = [];
        // 在createStore作用域下创建getState函数,该函数需要返回一个新对象,该对象需要和state一样。这个方法只用于获取state
        // 深克隆:将当前作用域下的state深克隆一份,让外界利用这个方法只能获取state不能修改state
        let getState = () => JSON.parse(JSON.stringify(state))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值