反应为什么仍然将功能传递给组件?

时间:2019-07-05 20:12:48

标签: javascript reactjs components

我只是想知道,为什么我们要在一个地方定义每个组件函数(例如index.js),然后将这些函数传递给组件呢?那有意义吗?

例如,我想为列表按钮组件定义一个单击处理程序,并为某些表单按钮组件定义另一个单击处理程序,为什么要在一个地方定义它们?分而治之方法不是更好吗?

我的意思是,为什么我不只是在组件本身(它们所属的位置)中定义我的单击处理程序?除了事实,一个地方的一切都变得凌乱并且难以维护...

1 个答案:

答案 0 :(得分:3)

  

我想为列表按钮组件定义一个单击处理程序,为某些表单按钮组件定义另一个单击处理程序,为什么我要在一个地方定义它们?

由于React所使用的单向数据流的性质,状态流向下流到树上,事件(即更改)通过诸如您提到的处理程序传回。树深处的组件只能(或更应该是)只能通过clickHandlers等将更改传播回去。

之所以经常在少数几个地方同时定义处理程序,是因为这些地方通常代表共享公共状态的点,因此需要在那儿处理更新该状态的事件。

相关问题