目录
3. 使用 Object.defineProperty() 来进行数据劫持有什么缺点?
15. v-model 可以被用在自定义组件上吗?如果可以,如何使用?
17. 对keep-alive的理解,它是如何实现的,具体缓存的是什么?
19. Vue 中给 data 中的对象属性添加一个新的属性时会发生什么?如何解决?
23. Vue data 中某一个属性的值发生改变后,视图会立即同步执行重新渲染吗?
一、Vue 基础
1. Vue的基本原理
当一个Vue实例创建时,Vue会遍历data中的属性,用 Object.defineProperty(vue3.0使用proxy )将它们转为 getter/setter,并且在内部追踪相关依赖,在属性被访问和修改时通知变化。 每个组件实例都有相应的 watcher 程序实例,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的setter被调用时,会通知watcher重新计算,从而致使它关联的组件得以更新。

2. 双向数据绑定的原理
Vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。主要分为以下几个步骤:
- 需要obs
本文详细介绍了Vue的基础知识,包括Vue的基本原理、双向数据绑定、MVVM、MVC和MVP的区别、Computed和Watch、Methods的区别,以及组件通信的各种方式。重点讲解了Vue的生命周期,从beforeCreate到destroyed的各个阶段以及组件通信中的props、$emit、eventBus、provide/inject等。此外,还探讨了Vue的性能优化和Vue模板编译原理。
订阅专栏 解锁全文
1279

被折叠的 条评论
为什么被折叠?



