个人简介

Echo Blog


江湖无名 安心练剑
  • 数据状态更新时的差异 diff 及 patch 机制
    数据更新视图 之前讲到,在对 model 进行操作对时候,会触发对应 Dep 中的 Watcher 对象。 Watcher 对象会调用对应的 update 来修改视图。 最终是将新产生的 VNode 节点与老 VNode 进行一个 patch 的过程,比对得出「差异」,最终将这些「差异」更新到视图上。 这一章就来介绍一下这个 patch 的过程,因为 patch 过程本身比较复杂,这...
    2021-10-18 13:01:55 | FrontEnd
  • template 模板是怎样通过 Compile 编译的
    Compile compile 编译可以分成 parse、optimize 与 generate 三个阶段,最终需要得到 render function。 这部分内容不算 Vue.js 的响应式核心,只是用来编译的,笔者认为在精力有限的情况下不需要追究其全部的实现细节,能够把握如何解析的大致流程即可。 由于解析过程比较复杂,直接上代码可能会导致不了解这部分内容的同学一头雾水。 所以笔...
    2021-10-18 13:01:55 | FrontEnd
  • 实现 Virtual DOM 下的一个 VNode 节点
    什么是VNode 我们知道,render function 会被转化成 VNode 节点。 Virtual DOM 其实就是一棵以 JavaScript 对象(VNode 节点)作为基础的树,用对象属性来描述节点,实际上它只是一层对真实 DOM 的抽象。 最终可以通过一系列操作使这棵树映射到真实环境上。 由于 Virtual DOM 是以 JavaScript 对象为基础而不依赖真实...
    2021-10-18 13:01:55 | FrontEnd
  • 响应式系统的依赖收集追踪原理
    为什么要依赖收集? 先举个栗子🌰 我们现在有这么一个 Vue 对象。 new Vue({ template: `<div> <span></span> <span></span> <div>`, data: { ...
    2021-10-18 13:01:55 | FrontEnd
  • 响应式系统的基本原理
    响应式系统 Vue.js 是一款 MVVM 框架,数据模型仅仅是普通的 JavaScript 对象,但是对这些对象进行操作时,却能影响对应视图,它的核心实现就是「响应式系统」。 尽管我们在使用 Vue.js 进行开发时不会直接修改「响应式系统」,但是理解它的实现有助于避开一些常见的「坑」,也有助于在遇见一些琢磨不透的问题时可以深入其原理来解决它。 Object.defineProper...
    2021-10-18 13:01:55 | FrontEnd
  • Vue.js 运行机制全局概览
    全局概览 这一节笔者将为大家介绍一下 Vue.js 内部的整个流程,希望能让大家对全局有一个整体的印象,然后我们再来逐个模块进行讲解。 从来没有了解过 Vue.js 实现的同学可能会对一些内容感到疑惑,这是很正常的,这一节的目的主要是为了让大家对整个流程有一个大概的认识,算是一个概览预备的过程,当把整本小册认真读完以后,再来阅读这一节,相信会有收获的。 首先我们来看一下笔者画的内部流程...
    2021-10-18 13:01:55 | FrontEnd
  • docsify-08-代码高亮
    代码高亮 docsify内置的代码高亮工具是 Prism。 Prism 默认支持的语言如下: Markup - markup, html, xml, svg, mathml, ssml, atom, rss CSS - css C-like - clike JavaScript - javascript, js...
    2021-10-12 13:01:55 | Doc
  • docsify-07-Markdown 配置
    Markdown 配置 内置的 Markdown 解析器是 marked,可以修改它的配置。 同时可以直接配置 renderer。 window.$docsify = { markdown: { smartypants: true, renderer: { link: function() { // ... } } ...
    2021-10-12 13:01:55 | Doc