简述 Vue的双向数据绑定( MVVM 实现了什么,以及其diff算法所运行的位置 )。

MVVM 实现了什么。

简述 Vue的双向数据绑定( MVVM 实现了什么,以及其diff算法所运行的位置 )。_第1张图片

    View(dom) ? ViewModel ? Model(javascript)
    Model通过vm数据绑定(Date Binding)来更新View代码(updateView)
	M ? V
	Model的动态变化 通过vm 动态更新到View。
	1.VM实现了一个数据监听器(Observe)进行数据劫持,当数据改变的时候通知订阅者(Watcher)[“diff算法在watcher的update方法里面。”],Watcher接收到需要更新的数据,更新View(视图)。
	2.实现了一个Compile(解析指令),将模版中的变量替换成数据{{****}},并绑定更新函数,添加数据订阅者(Watcher)。一旦数据变动,接收通知改变视图。
	View(dom) ? ViewModel ? Model(javascript)
    vm监听dom事件的变化(DOM Listeners),Model随着View触发事件而改变
	V ? M
	View的触发事件,通过vm 实现Dom元素监听者(Dom Listener)监听事件触发,从而触发Model事件变化。
	当Model事件变化的时候执行M->V过程进行更新视图

触发render(渲染dom)的时机。

VM实例初始化时。

Model动态修改时。

你可能感兴趣的:(面试题,javascript,#,vue)