vue中this.init用法_一、为什么Vue实例化后,通过this.能获取到data内的数据

本文通过分析Vue源码,详细解释了Vue实例化后如何通过`this.`访问到data内的数据。从实例化Vue开始,经过`_init`方法,到`initData`,再到`getData`函数,揭示了`call`方法在其中的作用,如何通过修改`this`指针实现在Vue实例中访问data数据。
摘要由CSDN通过智能技术生成

一. 从github获取vue开发版本的源码

git clone https://github.com/vuejs/vue.git

二. 从实例化vue (new vue)开始讲解

想了解“为什么Vue实例化后,通过this.能获取到data内的数据”必须对call函数内置方法有所了解,如有认识模糊的话可以参考JS的call方法的作用解释,简单易懂

1. new 实例化Vue首先进入的src/core/instance/index.js

// vue其实就是 function 实现的 class

function Vue (options) {

if (process.env.NODE_ENV !== 'production' &&

!(this instanceof Vue)

) {

warn('Vue is a constructor and should be called with the `new` keyword')

}

// new Vue进行初始化 Vue 并将options 参数传入_init 内 ,this._init 是原型中的方法 ,这个init方法来自于 ‘./init’ 中

this._init(options)

}

在实例化时,执行this._init(options),这个_init内置方法是下面initMixin(Vue)增加的

2. 进入src/core/instance/init.js 查看initMixin方法

initState(vm) // 初始化状态(这个状态包含data props methods), 这个初始化解决了实例化是通过 this 获取 data

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值