作品简介

本书从源码层面分析了Vue.js。首先,简要介绍了Vue.js;然后详细讲解了其内部核心技术“变化侦测”,这里带领大家从0到1实现一个简单的“变化侦测”系统;接着详细介绍了虚拟DOM技术,其中包括虚拟DOM的原理及其patching算法;紧接着详细讨论了模板编译技术,其中包括模板解析器的实现原理、优化器的原理以及代码生成器的原理;最后详细介绍了其整体架构以及提供给我们使用的各种API的内部原理,同时还介绍了生命周期、错误处理、指令系统与模板过滤器等功能的原理。

本书适合前端开发人员阅读。

刘博文

网名Berwin,95后,从事Web前端工作5年,2015年加入360奇舞团,现任360导航事业部资深前端工程师,负责360导航首页及二级页创新项目等亿级PV站点的设计与优化,推动Vue.js成为部门内广泛使用的核心技术栈,独立研发相关开发工具与技术解决方案并使之成功落地。

作品目录

  • 序一
  • 序二
  • 前言
  • 本书目的
  • 组织结构
  • 致谢
  • 第 1 章 Vue.js简介
  • 1.1 什么是Vue.js
  • 1.2 Vue.js简史
  • 第一篇 变化侦测
  • 第 2 章  Object 的变化侦测
  • 2.1 什么是变化侦测
  • 2.2 如何追踪变化
  • 2.3 如何收集依赖
  • 2.4 依赖收集在哪里
  • 2.5 依赖是谁
  • 2.6 什么是 Watcher
  • 2.7 递归侦测所有 key
  • 2.8 关于 Object 的问题
  • 2.9 总结
  • 第 3 章  Array 的变化侦测
  • 3.1 如何追踪变化
  • 3.2 拦截器
  • 3.3 使用拦截器覆盖 Array 原型
  • 3.4 将拦截器方法挂载到数组的属性上
  • 3.5 如何收集依赖
  • 3.6 依赖列表存在哪儿
  • 3.7 收集依赖
  • 3.8 在拦截器中获取 Observer 实例
  • 3.9 向数组的依赖发送通知
  • 3.10 侦测数组中元素的变化
  • 3.11 侦测新增元素的变化
  • 3.12 关于 Array 的问题
  • 3.13 总结
  • 第 4 章 变化侦测相关的API实现原理
  • 4.1  vm.$watch
  • 4.2  vm.$set
  • 4.3  vm.$delete
  • 4.4 总结
  • 第二篇 虚拟DOM
  • 第 5 章 虚拟DOM简介
  • 5.1 什么是虚拟DOM
  • 5.2 为什么要引入虚拟DOM
  • 5.3 Vue.js中的虚拟DOM
  • 5.4 总结
  • 第 6 章  VNode
  • 6.1 什么是 VNode
  • 6.2  VNode 的作用
  • 6.3  VNode 的类型
  • 6.4 总结
  • 第 7 章 patch
  • 7.1 patch介绍
  • 7.2 创建节点
  • 7.3 删除节点
  • 7.4 更新节点
  • 7.5 更新子节点
  • 7.6 总结
  • 第三篇 模板编译原理
  • 第 8 章 模板编译
  • 8.1 概念
  • 8.2 将模板编译成渲染函数
  • 8.3 总结
  • 第 9 章 解析器
  • 9.1 解析器的作用
  • 9.2 解析器内部运行原理
  • 9.3 HTML解析器
  • 9.4 文本解析器
  • 9.5 总结
  • 第 10 章 优化器
  • 10.1 找出所有静态节点并标记
  • 10.2 找出所有静态根节点并标记
  • 10.3 总结
  • 第 11 章 代码生成器
  • 11.1 通过AST生成代码字符串
  • 11.2 代码生成器的原理
  • 11.3 总结
  • 第四篇 整体流程
  • 第 12 章 架构设计与项目结构
  • 12.1 目录结构
  • 12.2 架构设计
  • 12.3 总结
  • 第 13 章 实例方法与全局API的实现原理
  • 13.1 数据相关的实例方法
  • 13.2 事件相关的实例方法
  • 13.3 生命周期相关的实例方法
  • 13.4 全局API的实现原理
  • 13.5 总结
  • 第 14 章 生命周期
  • 14.1 生命周期图示
  • 14.2 从源码角度了解生命周期
  • 14.3  errorCaptured 与错误处理
  • 14.4 初始化实例属性
  • 14.5 初始化事件
  • 14.6 初始化 inject
  • 14.7 初始化状态
  • 14.8 初始化 provide
  • 14.9 总结
  • 第 15 章 指令的奥秘
  • 15.1 指令原理概述
  • 15.2 自定义指令的内部原理
  • 15.3 虚拟DOM钩子函数
  • 15.4 总结
  • 第 16 章 过滤器的奥秘
  • 16.1 过滤器原理概述
  • 16.2 解析过滤器
  • 16.3 总结
  • 第 17 章 最佳实践
  • 17.1 为列表渲染设置属性 key
  • 17.2 在 v-if / v-if-else / v-else 中使用 key
  • 17.3 路由切换组件不变
  • 17.4 为所有路由统一添加 query
  • 17.5 区分Vuex与 props 的使用边界
  • 17.6 避免 v-if 和 v-for 一起使用
  • 17.7 为组件样式设置作用域
  • 17.8 避免在 scoped 中使用元素选择器
  • 17.9 避免隐性的父子组件通信
  • 17.10 单文件组件如何命名
  • 17.11 自闭合组件
  • 17.12  prop 名的大小写
  • 17.13 多个特性的元素
  • 17.14 模板中简单的表达式
  • 17.15 简单的计算属性
  • 17.16 指令缩写
  • 17.17 良好的代码顺序
  • 17.18 总结
  • 作者简介
  • 看完了
展开全部