vue props 对象_Vue源码解读(一)引入Vue做了什么

本系列文章都是vue版本2.6.11,也就是vuecli3的对应的vue的版本

学习一门技术的源码首先当然是从它的入口开始学习,在这里我先扩展一下从引入vue到入口都讲一下

首先看下node_modules下面有很多个不同版本的vue的源码文件那么到底用的是哪个呢

a49a597a91fa122a57e46d8588410931.png

具体哪个包做什么用vue的官方有说明,现在我们关注的是引入那一部分

我们知道现在我们都是用es6module的引入方式引入一个库,那么nodeJs在编译过程中他是怎么处理我们这一语法糖的呢。

nodeJs是支持es6module和commonJs编码规范的,nodeJs首先会找node_modules每个引入模块(核心模块除外 核心模块被编译成二进制文件在.bin目录下)的package.json文件,packagejson的main和module对应着两种加载方式,es6module引入会直接找module字段对应的文件路径,如果没有就找main的。module字段引入也是为了做treeshaking

1,vue入口初始化

1)绑定原型

1、绑定对象$data,$props,事件,更新、销毁函数到Vue原型

2、初始化入口方法_init

6a24e6ec2ced608e9ec2c7f46cbf35a3.png

2)初始Vue全局对象

绑定全局对象到Vue对象,将全局的函数绑定到Vue的构造函数

b1c5b0dfaf91aaca09a09760ba29ba86.png

3)实例化Vue

实例化Vue后调用_init方法初始实例vm

它会先判断是否为组件,如果是组件就会初始化组件的数据

然后就是一些周期函数,state的初始化了,initState将组件中的data,props,computed,watch,methods添加数据监听到vm实例中后续章节会特意讲如何监听的

到此为止是Vue初始化前提工作都已经准备完毕,我们在第二节Vue如何挂载到我们的真实Dom上面的

c6f4859d4866fa1ca4a8bf8061e57f65.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值