Vue中单向数据流与双向绑定两者的区别

在学习Vue的过程中,数据的双向绑定是一大特色,脑袋中一直是双向双向数据绑定。当看Vuex部分时,某然间看到单向数据流的概念模型,且Vue本来区别angular的就是,vue里是单向而angular是双向的。
一、单向数据流
这里写图片描述
单向数据流指只能从一个方向修改数据,姑且我们可以这样理解,如下图所示。一个父组件下有两个子组件1和子组件2,父组件可以向子组件传递数据。假如子组件都获取到了父组件的name,在子组件1中对name重新修改之后,子组件2和父组件中的值并不会发生改变,这正是因为Vue中的机制是单向数据流,子组件不能直接改变父组件的状态。但反过来,如果是父组件中的name修改了,当然两个子组件中的name也就改变了。
这里写图片描述
二、数据的双向绑定
主要是由MVVM框架实现,在Vue中主要由三个部分组成,View、ViewModel和Model组成,其中View和ViewModel不能直接进行通信,他们要通过中间件ViewModel来进行。例如,当Model部分数据发生改变时,由于vue中Data Binding将底层数据和Dom层进行了绑定,ViewModel通知View层更新视图;当在视图 View数据发生变化也会同步到Model中。View和Model之间的同步完全是自动的,不需要人手动的操作DOM。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/bonjourjw/article/details/79545709