扫码关注公众号

前端vue考点之生命周期和双向绑定
08-16
358观看
01

mvvm和mvc区别?它和其它框架(jquery)的区别是什么?哪些场景适合?

mvc和mvvm其实区别并不大。都是一种设计思想。主要就是mvc中Controller演变成mvvm中的viewModel。mvvm主要解决

来自:vue.js-基本语法-if\show
02

什么是vue生命周期?vue生命周期的作用是什么?第一次页面加载会触发哪几个钩子?DOM 渲染在 哪个周期中就已经完成?

本题重点考察对生命周期的理解,一方面要做为考点理解记忆,另一方面要结合实战。1.什么是vue生命周期?答:Vue实例从创建到销毁的过程,就是生命周期。从开始创建、初始化数据、编译模板、挂载Dom→渲染、更新→渲染、销毁等一系列过程,称之为Vue的生命周期。2.vue生命周期的作用是什么?答:它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑。3.第一次页面加载会触发哪几个钩子?答:会触发下面这几个beforeCreate,created,beforeMount,mounted。4.DOM渲染在哪个周期中就已经完成?答:DOM渲染在mounted中就已经完成了。

来自:vue.js-vue重排与重绘-diff
03

说一下,Vue实现数据双向绑定Object.defineProperty()的原理?然后使用js实现简单的双向绑定

vue实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调。当把一个普通Javascript对象传给Vue实例来作为它的data选项时,Vue将遍历它的属性,用Object.defineProperty将它们转为getter/setter。用户看不到getter/setter,但是在内部它们让Vue追踪依赖,在属性被访问和修改时通知变化。vue的数据双向绑定将MVVM作为数据绑定的入口,整合Observer,Compile和Watcher三者,通过Observer来监听自己的model的数据变化,通过Compile来解析编译模板指令(vue中是用来解析{{}}),最终利用watcher搭起observer和Compile之间的通信桥梁,达到数据变化—>视图更新;视图交互变化(input)—>数据model变更双向绑定效果。<body><divid="app"><inputtype="text"id="txt"><pid="show"></p></div></body><scripttype="text/javascript">varobj={}Object.defineProperty(obj,'txt',{get:function(){returnobj},set:function(newValue){document.getElementById('txt').value=newValuedocument.getElementById('show').innerHTML=newValue}})document.addEventListener('keyup',function(e){obj.txt=e.target.value})</script>

来自:vue.js-vue重排与重绘-diff
课程
专栏
Vue的生命周期的详解
csdn
4专栏
1课程
3 试题