TAT.rocket ReactJS 组件间沟通的一些方法
In 未分类 on 2016年01月13日 by view: 28,607
5

刚入门 React 可能会因为 React 的单向数据流的特性而遇到组件间沟通的麻烦,这篇文章主要就说一说如何解决组件间沟通的问题。


 

1. 组件间的关系

1.1 父子组件

ReactJS 中数据的流动是单向的,父组件的数据可以通过设置子组件的 props 传递数据给子组件。如果想让子组件改变父组件的数据,可以在父组件中传一个 callback(回调函数) 给子组件,子组件内调用这个 callback 即可改变父组件的数据。

 

<MyContainer /> 是<List /> 的父组件,<MyContainer /> 通过 props 传递 list 数据给<List /> 组件,如果<MyContainer /> 中的 list 改变,<List /> 会重新渲染列表数据。而<List /> 可以通过<MyContainer /> 传来的 changeItem 函数,改变<MyContainer /> 的 curItem 数据。

 

1.2  兄弟组件

当两个组件不是父子关系,但有相同的父组件时,将这两个组件称为兄弟组件。兄弟组件不能直接相互传送数据,此时可以将数据挂载在父组件中,由两个组件共享:如果组件需要数据渲染,则由父组件通过 props 传递给该组件;如果组件需要改变数据,则父组件传递一个改变数据的回调函数给该组件,并在对应事件中调用。