React初学关于组件数据传递方面的一点疑惑?

React组件之间(父子组件 兄弟组件)之间的数据传递都是通过state props来进行传递的。
问题是,我在实际这么用的时候,如果组件的层级深度比较深的时候,往往感觉这种数据的传递过程比较长,往往跟踪一个state/props跨越了好几个组件,处理起来感觉很复杂。

有什么更好的处理方式,是不是这种情况下就需要去学习使用Redux?或者说Redux/Flux就是为了解决这种问题的?

比如如下组件结构

<A>
    <B>
        <C />
    </B></A>

最外层组件A的用户操作影响组件C的状态,然后需要一个值(state/props)数据传递到组件C改变其state/props 重新渲染组件C


拉莫斯之舞
浏览 442回答 1
1回答

哔哔one

当组件的层级深度比较深的时候,正解是要使用React中的Context特性,简单来说它是一种具有穿透组件层级数据流的特性。说明白些,在Redux, Flux, MobX与React Router(路由器)这些库都是利用这个特性来作数据流的获取工作。但Context是一个有可能因版本更新后经常更动的实验性质特性,官方并不建议用于生产的开发之中(不过上面这些库都用了,这说明...是有点矛盾)。主要说出来是它是属于高级的API,怕开发者滥用了。实际来说,你可以使用这个Context特性,如果你的应用很小,用不著Redux或Flux时。当然,你需要知道它是如何使用与注意一些情况,例如不要把什么数据都往它塞,尤其是全局的数据。用多了你的应用也有可能会影响到效率。最后,因为它会因升版而变动,有可能你在升级时,需要再调整一下。如果你的应用很复杂,应用很大,就不要用Context特性,改用Redux或Flux,它们里面有比较良好的状态(state)管控机制,用了它们就不需要再使用React组件中的状态(state)来控管组件的状态。它们里面都有可以穿透组件数据流的设计。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript