关于父子组件通信问题的一点自己的看法

#1

通常父-子组件通信可以直接加一个props然后子组件接收,父组件可以修改值,而子组件只能通过this.props来读取,如果想要修改的话就会比较麻烦需要用个回调函数来操作。那么如果props能像state那样直接来个setState来修改岂不爽哉,这样就可以实现父子的双向通信以及兄弟组件之间的通信。因为今天项目中用到了所以有了这么个想法,个人愚见还请高手来一起探讨。

#2

如果是在前端渲染,在组件树上除叶子节点以外的地方使用Props的,都是没整明白React该怎么用的。

如果你的渲染是pure的,那么没有道理只有父组件能计算某个结果而子组件自己不能,如果不能,那store里面少定义了东西。

#3

照你这么说,那组件之间如何通信呢?

#4

比如父组件a引入a-1,a-2两个子组件,那么这两个子组件如何通信

#5

态都放在store里,组件之间不通讯;

你可以这样理解,store是一个model,给定一个model,它不是必须用来渲染web page,如果让你在windows上用windows组件,或者去linux上用gtk组件,渲染一个窗口,就用这个model,可行不可行呢?毫无疑问是有可行性的;只要求两点:

  1. model里定义的状态要完备,包括那些busy waiting之类的transient state;
  2. model要提供一个事件机制,用户在UI上触发的动作要发送给响应者处理,更新model,然后重新绘制;这个发送就是dispatch action。
#6

恩恩,看来是我太年轻。