在React和Vue中,都引入了prop的概念,在父子组件的通信过程中,设计成了单向数据流,这样做的原因是因为为了防止父组件将一个对象传给多个子组件,而某个子组件直接修改此对象,会引发其他子组件接收到的这个对象也产生变化,自然就会造成数据流的紊乱。
而框架对此没有设限,需要我们在编码的时候进行规避。
接触React的时候,有一个公式经常出现:
UI=render(data)
这其实是函数式编程思想,要求render是一个没有副作用的纯函数。
当我们去扰乱单向数据流的时候,其实在某种程度上使得render变成了一个有副作用的函数。违背了‘纯函数’的定义和函数式编程的原则。
因此所谓控制数据单向流动的设计思路其实有迹可循。在其他场景的编码中也应谨记。