是因为Redux是一种用于JavaScript应用程序的可预测状态容器。它通过一种称为单向数据流的模式来管理应用程序的状态。具体来说,Redux的状态存储在一个称为store的单一对象中,并通过一个称为action的纯净对象来描述状态的变化。当发生状态变化时,Redux使用一个称为reducer的纯函数来处理状态的更新。
在Redux中,状态的更新是通过dispatch一个action来触发的。当应用程序中的某个组件发生了一些操作,需要更新状态时,它会创建一个对应的action,并将其dispatch给Redux的store。Redux store会将这个action传递给reducer函数进行处理,reducer根据action的类型来更新状态,并返回一个新的状态对象。然后,Redux store会使用这个新的状态对象来替换之前的状态,从而实现了状态的更新。
然而,Redux的状态更新是通过纯函数的方式来进行的。这意味着每次状态更新都会创建一个新的状态对象,而不是直接修改原始的状态对象。这样做的好处是可以确保状态的不可变性和可预测性,从而简化状态管理和调试过程。但也意味着如果在app.js中直接修改Redux存储中的状态,不会触发状态的更新。
为了实现状态的更新,我们可以使用Redux提供的connect函数来连接组件和Redux store,并通过mapStateToProps和mapDispatchToProps两个参数来指定组件需要访问的状态和需要触发的action。通过这种方式,我们可以在组件中通过props访问和更新Redux存储中的状态。
综上所述,Redux存储不会更新app.js中的所有更改是因为Redux通过纯函数方式进行状态的更新,需要使用connect函数来连接组件和Redux store,并通过props来访问和更新状态。
领取专属 10元无门槛券
手把手带您无忧上云