首页 / VUE / vue经典面试题两问
vue经典面试题两问
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了vue经典面试题两问,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1607字,纯文字阅读大概需要3分钟。
内容图文
![vue经典面试题两问](/upload/InfoBanner/zyjiaocheng/1001/ebdb188325f04da4aaed99d709cc061c.jpg)
一、请详细说下你对vue生命周期的理解?
vue生命周期总共分为8个阶段创建前/后,载入前/后,更新前/后,销毁前/后。
1、创建前/后:在beforeCreated阶段,vue实例的挂载元el还没有。
2、载入前/后:在beforeMount阶段,vue实例的$el和data都初始化了,但还是挂载之前为虚拟的dom节点,data.message还未替换。在mounted阶段,vue实例挂载完成,data.message成功渲染。
3、更新前/后:当data变化时,会触发beforeUpdate和updated方法。
4、销毁前/后:在执行destroy方法后,对data的改变不会再触发周期函数,说明此时vue实例已经解除了事件监听以及和dom的绑定,但是dom结构依然存在。
二、谈谈你对vue的双向数据绑定原理的理解?
vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。
具体步奏:
第一步:需要observe的数据对象进行递归遍历,包括子属性对象的属性,都加上 setter和getter。这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化
第二步:compile解析模板指令,将模板中的变量替换成数据,然后初始化渲染页面视图,并将每个指令对应的节点绑定更新函数,添加监听数据的订阅者,一旦数据有变动,收到通知,更新视图
第三步:Watcher订阅者是Observer和Compile之间通信的桥梁,主要做的事情是:
1、在自身实例化时往属性订阅器(dep)里面添加自己
2、自身必须有一个update()方法
3、待属性变动dep.notice()通知时,能调用自身的update()方法,并触发Compile中绑定的回调,则功成身退。
第四步:MVVM作为数据绑定的入口,整合Observer、Compile和Watcher三者,通过Observer来监听自 己的model数据变化,通过Compile来解析编译模板指令,最终利用Watcher搭起Observer和Compile之间的通信桥梁,达到数据变化 -> 视图更新;视图交互变化(input) -> 数据model变更的双向绑定效果。
内容总结
以上是互联网集市为您收集整理的vue经典面试题两问全部内容,希望文章能够帮你解决vue经典面试题两问所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。