• vue源码


    Vue是中小型前端库。 https://github.com/vuejs/vue 

    当前"version": "2.6.11"。

    一、环境搭建

    1、搭建调试环境

    第一步:获取:git clone https://github.com/vuejs/vue.git

    第二步:安装依赖:npm i

    可以用cnpm装。如果遇到装phantomjs很慢终止也可以,这个包用不到。

    第三步:全局安装打包工具rollup: npm i -g rollup

    第四步:修改dev脚本,添加--sourcemap

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

    第五步:执行dev脚本:npm run dev

    配置了sourcemap会生成vue.js.map ,在Revel in Sidebar中可以看到源文件目录

     2,调试技巧

    打开文件ctrl+p

    断点

    单步执行

    打开调用栈Call Stack 

    定位当前源文件所在位置(在文件选择器中显示或者,Revel in Sidebar)

    遇到pre-commit hook failed报错;

    running pre-commit hook: lint-staged

    可以在提交的时候加上命令(--no-verify)不进行校验。

    git commit -m "npm i" --no-verify  

    或者不进行检查

    直接删除掉pre-commit hook,具体位置在项目文件夹.githooks目录下,找到文件pre-commit删除即可

    二、源码

    1,源码目录

    • dist:发布目录
    • example:范例,里面有测试代码
    • packages:核心代码之外的独立库
    • scripts:构建脚本
    • flow: 针对flow的类型声明 vue2.x用的flow
    • types :ts类型声明

    src目录,经常看的是这么目录

    • complier:环境,编译器相关的
    • directives:指令定义 v-on ,v-bind, v-if等实现
    • parse:html编译
    • platforms:平台特有的代码,web平台和weex平台
    • server:服务器端渲染
    • sfc:单文件渲染
    • core: 核心代码,要常来这里看看
      • components:通用租金如keep-alive
      • global-api:全局API,Vue.use(),set(),delete()
      • instance:构造函数等
      • oserver:响应式相关
      • util:工具类,props.js
      • vdom:虚拟DOM相关,diff算法

    核心代码在core里面。怎么去做生命周期,依赖注入,render是怎么处理页面的渲染的,状态保持是怎么做状态。观察者是怎么实现的。

    platforms: weex平台还没有用起来。只有阿里和微软在用。

    vdom: 先看看网上文章,了解一下算法,再看源码。

    用到列表,双向列表,单向列表,列表的插入。

    server是做SSR的,做后端渲染的。

    dist目录中术语:

    • runtime:仅包含运行时,不包含编译器
    • common:cjs规范,用于webpack1
    • esm:ES模块,用于webpack2+
    • umd:universal module definition,兼容cjs和amd,用于浏览器,<script src="xxx"> 形式引入

    2、vue初始化过程

    3,深入理解数据响应式

    4,更新流程,异步更新

    2018-05-20 15:43

  • 相关阅读:
    关于ios7的适配问题
    iOS安全攻防(十八):数据保护API
    【Objective-C】OC中KVO的基本概念和使用方法
    pytest运行方式
    unittest中使用ddt做数据驱动
    unittest使用HtmlTestRunner显示报告
    unittest中的断言内容
    unittest指定跳过某些方法
    unittest运行时指定运行顺序
    xpath使用属性元素定位,包含 and 、or、not
  • 原文地址:https://www.cnblogs.com/starof/p/9063588.html
Copyright © 2020-2023  润新知