Vue面试题汇总 本篇文章将对Vue的基础知识进行详细的总结和解释,涵盖了Vue的基本原理、双向数据绑定的原理、MVVM、MVC、MVP的区别等内容。 1. Vue的基本原理 在创建Vue实例时,Vue会遍历data中的属性,并使用Object.defineProperty()或Proxy将它们转换为getter和setter,从而在内部追踪相关依赖。在属性被访问和修改时,会通知watcher重新计算,从而致使它关联的组件得以更新。每个组件实例都有相应的watcher程序实例,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的setter被调用时,会通知watcher重新计算,从而致使它关联的组件得以更新。 2. 双向数据绑定的原理 Vue.js采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()或Proxy来劫持各个属性的setter和getter,在数据变动时发布消息给订阅者,触发相应的监听回调。主要分为以下几个步骤: * 需要observe的数据对象进行递归遍历,包括子属性对象的属性,都加上setter和getter,这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化 * compile解析模板指令,将模板中的变量替换成数据,然后初始化渲染视图,并将每个指令对应的节点绑定更新函数,添加监听数据的订阅者,一旦数据有变动,收到通知,更新视图 * Watcher订阅者是Observer和Compile之间通信的桥梁,主要做的事情是:①在自身实例化时往属性订阅器(dep)里添加自身②自身必须有一个update()方法③待属性变动dep.notice()通知时,能调用自身的update()方法,并触发Compile中绑定的回调,则功成身退 3. MVVM、MVC、MVP的区别 MVC、MVP和MVVM是三种常见的软件架构设计模式,主要通过分离关注点的方式来组织代码结构,优化开发效率。 * MVC通过分离Model、View和Controller的方式来组织代码结构,其中View负责页面的显示逻辑,Model负责存储页面的业务数据,以及对相应数据的操作。并且View和Model应用了观察者模式,当Model层发生改变的时候它会通知有关View层更新页面。 * MVVM分为Model、View、ViewModel:Model代表数据模型,数据和业务逻辑都在Model层中定义;View代表UI视图,负责数据的展示;ViewModel负责监听Model中数据的改变并且控制视图的更新,处理用户交互操作;Model和View并无直接关联,而是通过ViewModel来进行联系的,Model和ViewModel之间有着双向数据绑定的联系。 4. 使用Object.defineProperty()进行数据劫持的缺点 使用Object.defineProperty()进行数据劫持时,在对一些属性进行操作时,使用这种方法无法拦截,例如通过下标方式修改数组数据或者给对象新增属性,这都不能触发组件的重新渲染,因为Object.defineProperty不能拦截到这些操作。在Vue3.0中已经不使用这种方法,而是通过使用Proxy对对象进行代理,从而实现数据劫持。使用Proxy的好处是它可以完美地监听到任何方式的数据改变,唯一的缺点是兼容性的问题,因为Proxy是ES6的语法。
剩余74页未读,继续阅读
- m0_585351292021-12-29用户下载后在一定时间内未进行评价,系统默认好评。
- 粉丝: 75
- 资源: 1311
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 2025计算机网络技术考试题及答案.docx
- 2025驾驶员交通安全知识测试题及答案.docx
- 2025继续教育公需课必修课考试题库附含答案.docx
- 2025家政服务考试题及答案.docx
- 工程造价咨询企业基于绩效的体系设计.doc
- 2018年造价咨询公司绩效提成方案.doc
- 工程造价从业人员绩效考核制度.doc
- 工程造价企业绩效考核细则.doc
- 工程造价咨询项目考核评分制度(试行).doc
- 项目管理有限公司造价咨询薪酬管理办法.doc
- 造价咨询公司绩效提成方法.doc
- 造价咨询公司薪酬管理办法.doc
- 2025驾照C1证考试科目一必考考试题库带答案.docx
- 2025建筑八大员(材料员基础知识)考试题与答案.docx
- 2025检验类之临床医学检验技术(士)真题库附答案.docx
- 咨询公司薪酬管理办法.doc