Skip to content

vue2.6.13

第一节

为了在浏览器调试源码中,查看当前代码在源码中的位置,需要在packages.json中加上

json
{
  "scripts": {
    "dev": "rollup -w -c scripts/config.js --sourcemap --environment TARGET:web-full-dev"
  }
}

之后再启动npm run dev

注意点:

  1. 当调试 vue 的源码就会发现,函数的解释其实在源码中就有了,只不过是英文, 比如initInternalComponent函数
  2. 变量名及函数名都是有意义的,要注意

怎样写会进入什么函数

为什么 js 文件中可以出现类型判断:使用了 flow

调试麻烦

第三节

Vue 2.6.13 源码 examples 目录分析

注意:2.6 2.5 源码其实相差不大,对比着看就行

这个 examples/ 目录包含了 Vue.js 的官方示例,展示了 Vue 的各种核心功能和最佳实践。每个示例都有特定的用途: 📁 主要示例分类

  1. 基础功能示例 commits/ - GitHub API 数据获取 演示:v-for、v-model、watch、filters、异步数据加载 用途:学习数据绑定、条件渲染、过滤器使用 todomvc/ - 经典 TodoMVC 实现 演示:完整的 SPA 应用、路由、本地存储、组件通信 用途:学习 Vue 应用架构、状态管理、生命周期
  2. 组件化示例 tree/ - 递归树形组件 演示:递归组件、Vue.set、动态数据操作 用途:学习复杂组件设计、递归渲染 modal/ - 模态框组件 演示:插槽(slots)、过渡动画、组件通信 用途:学习可复用组件设计 grid/ - 数据表格组件 演示:组件 props、计算属性、排序过滤 用途:学习数据展示组件
  3. 特殊功能示例 svg/ - SVG 图形操作 演示:Vue 与 SVG 结合、动态图形生成 用途:学习数据可视化 markdown/ - Markdown 编辑器 演示:v-html、第三方库集成、防抖处理 用途:学习富文本处理 firebase/ - Firebase 集成 演示:实时数据库、表单验证、插件使用 用途:学习后端集成
  4. 动画和交互示例 elastic-header/ - 弹性头部动画 move-animations/ - 移动动画 select2/ - 下拉选择组件 🚀 如何使用这些示例
  5. 直接运行
  6. 学习路径建议 入门:commits/ → markdown/ → modal/ 进阶:todomvc/ → tree/ → grid/ 高级:firebase/ → svg/ → 动画示例
  7. 源码学习重点 组件注册:看 Vue.component() 的使用 生命周期:观察 created、mounted 等钩子 响应式数据:理解 data、computed、watch 模板语法:学习 v-for、v-if、v-model 等指令
  8. 调试技巧 使用 debugger 语句在关键位置打断点 在浏览器开发者工具中观察 Vue 实例 修改示例代码来理解不同功能 �� 学习建议 从简单开始:先看 commits 和 markdown 示例 动手实践:修改示例代码,观察变化 对比学习:比较不同示例的实现方式 深入源码:结合 Vue 源码理解示例中的 API 这些示例是学习 Vue.js 的绝佳资源,每个都展示了特定的 Vue 特性和最佳实践。

关于源码的学习,边学习边调试肯定是不错的方法,但是自己写实例对于新人来说一个是不知道如何下手,一个是写的不完美,索性直接从官网 example 入手 可以更改相关文件

服务端、wxxee 端

js
<script src="../../dist/vue.min.js"></script>

源码阅读建议:源码一般都得看好几遍,即使再有人带的情况下,我的建议是最起码看三遍

  1. 第一遍先快速的浏览下,知道那个文件是干嘛的,哪个函数大概的作用
  2. 第二遍跟着教程调试,遇见不懂的地方记下来
  3. 第三遍写自己测试用例,并写下自己的理解
  4. 理解每个函数的参数都是什么,自己写一个小型的 vue

可以根据报错信息从源码解读,看看错误出现在哪

画流程图,与函数栈对应起来

抓大放小,源码不用一行一行深究,只需要知道大概的逻辑就可以,这个深度具体的自己把握,深了太浪费时间,浅了又不深刻 我的参考建议是流程类必须深究,工具类函数可以只是了解下, 接下来在我一些具体文章中可以体会到

演示一个完整的流程

我的一个兴趣爱好是-如何触发代码里的各种 warn

为什么非生产环境要判断,生产环境不需要判断吗?

源码与现象:重大的问题相结合

树结构举例

为什么注释会分行

结构、行 => 块 => 功能

如有转载或 CV 的请标注本站原文地址