当前位置:  开发笔记 > 运维 > 正文

redux vs this.state in native native

如何解决《reduxvsthis.stateinnativenative》经验,为你挑选了1个好方法。

在找到egghead.io上的小型系列讲座后,我和redux一起工作了一段时间.我试图理解redux之间的区别,this.state以及什么时候适合使用它.

在redux之前,我设置了一个全局容器组件,它为整个app提供了状态.例如,当它从websocket接收到数据更改时,它将调用this.setState适当的状态项,触发UI更改(例如,将新TODO添加到TODO列表中)到其子组件.我发现redux是一个很好的替代品.

然而,当涉及到维持一种不同的状态 - 比如用户所处的当前状态 - 我发现使用redux非常困难,因为我必须独立地保持我自己的屏幕历史Navigator.当存在嵌套导航器时也变得困难,并且不清楚哪个状态"后退"应该占用用户.

我想知道什么是一些好的经验法则或情况,哪些是适合使用this.statevs redux而不是手动保持状态(如使用Navigator).



1> Adam Terlson..:

通常,Redux位于您的"智能组件"之上,仅为它们提供它们要处理的全局应用程序状态.我会说,通常一个人总是将状态存储在他们的Redux商店中,除非所使用的状态实际上是组件内部的功能,并且永远不会在其他地方使用.

这方面的一个例子可能是存储textInput字段的值,其中值本身不是其他组件感兴趣的部分,也许它与其他值一起编译,或者您只想在其满足一定长度时将其提供给其他组件要求什么的.在这种情况下,我会在最终将它存储在redux存储中之前将其存储在组件的状态中.

我个人遵循的状态存储"规则":

    一旦某个值对应用程序的任何其他部分感兴趣,可能稍后有价值,或者将被传递给其他组件(聪明或愚蠢),它必须进入Redux

    如果某个值对于应用程序的其余部分实际上是无意义的,则可以通过该组件的状态在内部管理该组件,直到受到上述操作的影响.


关于导航器的具体问题,不知道"返回"是什么,为什么不改为将route状态实现为数组呢?您可以进一步编写component-that-wrap navigatormapStateToProps函数,只查看最后一项routes.

mapStateToProp(state) {
    return { currentRoute: state.route && state.route[state.route.length-1] }
}

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有