美文网首页web前端
前端常见面试题(八)vue双向数据绑定

前端常见面试题(八)vue双向数据绑定

作者: 嘎拉呢 | 来源:发表于2019-07-26 00:49 被阅读0次

目录:

1,Vue中双向数据绑定是如何实现的

2,详述虚拟DOM中的diff算法

3,vue提供了几种脚手架模板

4.常见的几种MVVM的实现方式


一:Vue中的双向数据绑定是如何实现的

**Vue的双向数据绑定是通过数据劫持结合发布者订阅者模式来实现的

条件:

1、实现一个数据监听器Observer,能够对数据对象的所有属性进行监听,如有变动可拿到最新值并通知订阅者

2、实现一个指令解析器Compile,对每个元素节点的指令进行扫描和解析,根据指令模板替换数据,以及绑定相应的更新函数

3、实现一个Watcher,作为连接Observer和Compile的桥梁,能够订阅并收到每个属性变动的通知,执行指令绑定的相应回调函数,从而更新视图

4、MVVM入口函数,整合以上三者

原理

个人理解:在new Vue的时候,在Observer中通过Object.defineProperty()达到数据劫持,代理所有数据的getter和setter属性,在每次触发setter的时候,都会通过Dep来通知Watcher,Watcher作为Observer数据监听器与Compile模板解析器之间的桥梁,当Observer监听到数据发生改变的时候,通过Updater来通知Compile更新视图

而Compile通过Watcher订阅对应数据,绑定更新函数,通过Dep来添加订阅者,达到双向绑定

二:详述虚拟DOM中的diff算法

1,首先要先讲一下虚拟DOM是如何实现的

虚拟DOM是通过js语法来在内存中维护一个通过数据解构描述出来的一个模拟DOM树,当数据发生改变的时候,会先对虚拟DOM进行模拟修改,然后在通过新的虚拟DOM树与旧的虚拟DOM树来对比,而这个对比就是通过diff算法来进行的虚拟DOM最大的意义不在于性能的提升(JavaScript对象比DOM对象性能高),而在于抽象了DOM的具体实现(对DOM进行了一层抽象)

so:步骤一:用JS对象模拟DOM树

步骤二:比较两棵虚拟DOM树的差异

步骤三:把差异应用到真正的DOM树上

同时维护新旧两棵虚拟DOM树,当数据发生改变的时候,开始执行对比

首先对根元素进行对比,如果根元素发生改变就直接对根元素替换

三:Vue提供了几种脚手架模板

webpack- 一个全面的webpack+vue-loader的模板,功能包括热加载,linting,检测和CSS扩展。

webpack-simple- 一个简单webpack+vue-loader的模板,不包含其他功能,让你快速的搭建vue的开发环境。

browserify- 一个全面的Browserify+vueify 的模板,功能包括热加载,linting,单元检测。

browserify-simple- 一个简单Browserify+vueify的模板,不包含其他功能,让你快速的搭建vue的开发环境。

simple- 一个最简单的单页应用模板。

pwa- 一个集成pwa环境的webapp的模板

四:常见的几种MVVM的实现方式

发布者-订阅者模式(backbone.js)

脏值检查(angular.js)

数据劫持(vue.js)


相关文章

  • vue基本面试题总结

    原文地址:vue基本面试题 1、vue双向数据绑定? vue数据双向绑定是通过 数据劫持 结合 发布者-订阅者 模...

  • 前端面试资料收集

    vue相关知识 前端面试题+前端学习+面试指南 剖析Vue原理&实现双向绑定MVVM 详解 JavaScript的...

  • vue经典面试题

    vue经典面试题 vue指令中,双向数据绑定是哪个指令,请说出其原理? v-model 是数据双向绑定是通过数据劫...

  • 原生JS---经典面试题总结---doing

    总结的很全面:前端知识图谱 小昭聊前端--经典面试题总结 vue双向绑定原理分析 vue 3.0新特性 2019 ...

  • 前端常见面试题(八)vue双向数据绑定

    目录: 1,Vue中双向数据绑定是如何实现的 2,详述虚拟DOM中的diff算法 3,vue提供了几种脚手架模板 ...

  • Vue 中的双向数据绑定

    双向绑定 单向数据流 双向绑定 or 单向数据流 Vue 是单向数据流,不是双向绑定 Vue 的双向绑定是语法糖 ...

  • vue的双向数据绑定

    参考文章: 面试题:你能写一个Vue的双向数据绑定吗?

  • vue面试题之三:vue常见面试题①

    3. vue常见面试题 1. vue的优缺点 优点:性能好,简单易用,前后端分离,双向数据绑定,单页面应用用户体验...

  • vue之数据的双向绑定

    1、vue 实现数据的双向绑定: 实现: 前端发起请求将服务端后台数据取回之后,渲染前端...

  • Vue入门(二)——数据绑定

    一、什么是双向数据绑定 双向数据绑定是Vue的核心功能之一。所谓双向数据绑定是指:HTML标签上的数据绑定到Vue...

网友评论

    本文标题:前端常见面试题(八)vue双向数据绑定

    本文链接:https://www.haomeiwen.com/subject/xuslrctx.html