本文为原创文章,未获授权禁止转载,侵权必究!
本篇是 Vue3 源码解析系列第 1 篇,关注专栏
前言
本系列基于 Vue 3.2.37 版本分析,可直接前往下载。
使用步骤
shell
// 1、安装 pnpm
npm i -g pnpm
// 2、安装依赖
pnpm i
// 3、package.json 修改配置 末尾添加 -s 开启sourcemap
"build": "node scripts/build.js -s"
// 添加 `-s` 原理是在 `scripts/build.js` 文件下 设置 `sourceMap`,
// 通过 `const args = require('minimist')(process.argv.slice(2))` 获取到配置数据
// 这里使用了 `minimist` 包,将 node 命令解析成 对象数据
// 4、打包生成 vue 文件
npm run build
// 5、packages/vue/examples 文件下创建 learning 文件夹
mkdir learning
// 6、learning 文件夹下创建 html 文件
mkdir index.html
// 7、引入 vue 文件, global 文件为浏览器引入格式
<script src="../../dist/vue.global.js"></script>
// 8、案例
<body>
<div id="app"></div>
<script>
const { reactive, effect } = Vue
const obj = reactive({
name: 'jc'
})
effect(() => {
document.querySelector('#app').innerHTML = obj.name
})
setTimeout(() => {
obj.name = 'cc'
}, 2000)
</script>
</body>
// 9、F12 打开浏览器进行 debugger 调试
调试
目录
核心文件均在 packages
目录下
md
## compiler 编译时
- compiler-core 核心
- compiler-dom 浏览器编译时
- compiler-sfc vue文件
- compiler-ssr 服务端
## reactivity 响应式
- reactivity
- ref
- reactive
## runtimer 运行时
- runtime-core 核心
- runtime-dom 浏览器运行时
## shared 共享工具
## vue
src/index.ts 入口