1. 子组件不做数据请求,只接受新获得的数据
2. 于是父组件的状态变化子组件不需要去监听
3. 当父组件发生状态变更的时候(比如点击按钮)由父组件负责调用请求数据的方法(action)
4. action 从哪儿来?从 controller 或者 route 来
所以完整的路径是这样的:
1. 首先,路由获得初始数据(一次请求),数据向下传递,一直传递给子组件进行渲染
2. 然后,在路由或是控制器添加请求数据的 action,将其传递给父组件(或是传递给任何需要触发这个请求的组件)
3. action 被触发开始请求,最后将新的数据 set 给初始数据
4. 最后,由于数据发生了变化,于是最开始的子组件就会自动更新
说白了就是:负责渲染的只接收数据,负责更新的只接收更新数据的方法,两个都负责的就都接收
这样一来,谁也不需要监听谁,由数据变化本身来驱动各自的状态更新
这是一切现代 javascript 框架的核心所在
并且这个思路也就是最近几年炒得火热的概念:DDAU,Data Down Action Up