前端每日一练:深入理解new Vue 构造函数的初始化过程

本文详细探讨Vue.js中,如何通过Vue构造函数创建和初始化实例,涉及选项合并、生命周期管理、数据处理、渲染及挂载机制。重点讲解了核心的_init方法和其内部关键步骤。
摘要由CSDN通过智能技术生成

在前端开发中,Vue.js 是一个非常流行的 JavaScript 框架,它提供了一种数据驱动的方式来构建 Web 界面。Vue 的核心是 Vue 构造函数,它负责创建 Vue 实例并管理整个应用的生命周期。在本文中,我们将深入探讨 Vue 构造函数的初始化过程,了解 Vue 实例是如何被创建和初始化的。

1. Vue 构造函数的初始化

  1. vue只能通过new关键字初始化

  2. 合并传入的options

  3. 初始化生命周期

  4. 初始化事件中心

  5. 初始化渲染

  6. 初始化data

  7. 初始化props

  8. 初始化computed

  9. 初始化watch

  10. 最后检测是否有el属性,有的话就把上面渲染好的代码挂载到页面上

Vue构造函数的核心代码只有一行:this._init(options)
_init 方法中主要做了下边几件事情:

合并配置:_init 的参数 options 就是 new Vue(options) 时传入的选项,在这里通过 mergeOptions 方法把 options 合并到 vm.$options 中。
调用 initLifecycle(vm)、initEvents(vm)、initRender(vm)、initState(vm) 函数进行生命周期的初始化、事件中心的初始化、渲染的初始化、data、props、computed、watch的初始化等等。其中 initState 就是将vue实例中的data、props、computed、watch等数据项做进一步得处理,其实就是做代理以及转化成可观测对象。
另外,我们可以看到在 initState(vm) 执行之前,我们执行了 beforeCreate 方法,在 initState(vm) 执行之后,我们执行了 created 方法。因此在 beforeCreate 方法中,我们无法直接引用data,method,computed,watch等在 initState(vm) 中才开始存在的属性。
检测是否有el属性,有的话就调用 vm.$mount(vm.$options.el) 进行挂载渲染成真实dom。

  • 25
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值