Vue2 初始化做了什么?_这个步骤就像是给我们的数据装上监视器_Vue2 初始化做了什么
Vue2 初始化做了什么?
Vue2在启动时会做几件重要的事情,让我们的应用能顺利运行。这些事情包括:
- 初始化数据绑定
- 初始化生命周期钩子
- 初始化事件
- 初始化渲染
接下来,我会用更通俗的方式详细解释这些步骤。
一、初始化数据绑定
这个步骤就像是给我们的数据装上监视器,一有变化就通知视图更新。
- 观察者模式:就像有个小助手在盯着我们的数据,一旦数据变了,小助手就会通知我们。
- 数据代理:我们的Vue实例就像个中间人,我们可以直接通过Vue实例访问数据,实际上它是在帮我们访问。
- 响应式系统:Vue使用了一种叫Object.defineProperty()的方法,给每个属性装上getter和setter,这样数据变化时,Vue就会知道要更新视图。
具体操作流程可以参考以下表格:
步骤 | 描述 |
---|---|
定义数据 | 在Vue实例中定义数据 |
创建观察者 | 创建一个观察者对象,监视数据变化 |
设置getter和setter | 为每个数据属性设置getter和setter,当数据变化时触发setter |
通知视图更新 | 当数据变化时,通知视图进行更新 |
二、初始化生命周期钩子
Vue实例就像一个演员,在不同的时间点会有不同的动作,生命周期钩子就是演员的台词,告诉我们在什么时候该做什么。
钩子名称 | 描述 |
---|---|
beforeCreate | 实例初始化之后,数据观测和事件配置之前调用 |
created | 实例创建完成后调用,此时实例已完成数据观测、属性和方法的运算,但尚未进行DOM渲染 |
beforeMount | 在挂载开始之前被调用,相关的render函数首次被调用 |
mounted | el被新创建的vm.$el替换,并挂载到实例上去之后调用 |
beforeUpdate | 数据更新时调用,发生在虚拟DOM重新渲染和打补丁之前 |
updated | 由于数据更改导致的虚拟DOM重新渲染和打补丁之后调用 |
beforeDestroy | 实例销毁之前调用。实例仍然完全可用 |
destroyed | 实例销毁后调用。调用后,Vue实例指示的所有东西都会解除绑定,所有的事件监听器会被移除,所有的子实例也会被销毁 |
三、初始化事件
Vue实例内部有个事件系统,就像是组件间的交流桥梁。
- 事件监听器:给组件加个监听器,就像安装了个窃听器,可以听到组件间交流的信息。
- 事件触发器:有需要时,可以人为地触发事件,就像按了一个按钮。
- 父子组件通信:子组件通过事件告诉父组件它想说什么,父组件通过监听这些事件来做出回应。
四、初始化渲染
Vue使用虚拟DOM来提高性能,初始化渲染就是创建这个虚拟DOM的过程。
- 创建虚拟DOM:Vue会创建一个虚拟DOM树,用来描述真实DOM的结构。
- 渲染函数:Vue将模板编译成渲染函数,这个函数可以将数据和模板结合生成虚拟DOM。
- DOM更新:Vue会比较新旧虚拟DOM,只更新变化的部分,这样就可以提高性能。
Vue2的初始化过程是复杂而巧妙的,它确保了我们的应用能够流畅地运行。理解这些初始化步骤,可以帮助我们更好地掌握Vue的工作原理,写出更高效、可维护的代码。