专栏
扫码关注公众号
Vue 响应式怎么实现 ?
当你把一个普通的JavaScript对象传给Vue实例的data选项,Vue将遍历此对象所有的属性,并使用Object.defineProperty把这些属性全部装换为getter/setter。Object.defineProperty是ES5中一个无法shim的特性,这也就是为什么Vue不支持IE8以及更低版本浏览器的原因。每个组件实例都对应一个watcher实例,它会在组件渲染的过程中把“接触”过的数据property记录为依赖。之后当依赖项的setter触发时,会通知watcher,从而使它关联的组件重新渲染。更具体的理解:利用Object.defineProperty进行数据劫持同时结合观察者模式(发布/订阅模式)来实现数据双向绑定,这也是vue响应式原理的核心。
用于绑定DOM属性的指令是( )
正确答案是C定DOM属性的指令是v-bind
以下属于Vue绑定事件的指令是( )
正确答案是BC绑定事件有两种方式:第一种,通过v-on指令二种,通过@语法糖
关于Vue双向数据绑定说法错误的是( )
正确答案是BObject.defineProperty(obj,key,val)不可以监听数组变化,需要做特殊处理,所以Vue3.0使用Proxy实现数据监听。