新書推薦:
《
纷纭万端 : 近代中国的思想与社会
》
售價:NT$
500.0
《
中国古代文体形态研究(第四版)(中华当代学术著作辑要)
》
售價:NT$
765.0
《
朋党之争与北宋政治·大学问
》
售價:NT$
454.0
《
甲骨文丛书·波斯的中古时代(1040-1797年)
》
售價:NT$
403.0
《
以爱为名的支配
》
售價:NT$
286.0
《
台风天(大吴作品,每一种生活都有被看见的意义)
》
售價:NT$
245.0
《
打好你手里的牌(斯多葛主义+现代认知疗法,提升当代人的心理韧性!)
》
售價:NT$
301.0
《
新时代硬道理 广东寻路高质量发展
》
售價:NT$
352.0
|
編輯推薦: |
如果您想深入理解Vue.js2.0源码,掌握Vue2完整的生态实现,包括VueRouter、Vuex、Vue SSR等,那么这本书是您的不二之选
这本书不只讲原理,更会手把手带你去实现源码,直达本质
这本书不仅是一本源码解析的书籍,更是一本关于Vue.js 2.0生态的全面指南,可让您轻松掌握Vue2的方方面面
想要不再惧怕源码吗?想要看透本质吗?想要追逐真实吗?想要攀登“顶峰”吗?翻开本书扉页,一触即达
|
內容簡介: |
我猜您看到这本书的第一反应或许是:Vue3都出了这么久了,我还用看 Vue2的源码分析? 直接学 Vue3 不好吗? 对于这个问题,我的答案就是:如果您现在正在使用 Vue2及其生态作为项目开发的技术栈,并且已 经用了很长一段时间,未来短期内也不一定会有可以使用 Vue3的新项目,那么我建议您一定要好好学学 Vue2。这本书无论是对您现在工作中的帮助,还是对可能会学习 Vue3的帮助,都是立竿见影的。 但是,如果您现在已经在项目中应用了 Vue3,那么其实这本书也有很好的启示作用。 简单来说,就是您正在用什么就去学什么,这句话或许能给在技术海洋里感到迷茫的您一点点方向和光明。
|
目錄:
|
目录
第1章 基本响应式原理
1.1 基本开发环境搭建
1.2 JavaScript高阶技法
1.2.1 call、bind、apply太难了
1.2.2 defineProperty
1.2.3 Object.create了什么
1.2.4 new 了个什么
1.2.5 this到底是谁
1.3 initData:Vue初始化
1.4 Observer———响应式原理的核心
1.5 数组的响应———AOP的实际应用
1.6 初始化代码浅析
1.6.1 扁平化后的代码
1.6.2 按“图”索“骥”———流程梳理
1.7 源码的阅读方法———任何源码都可以这样看
第2章 模板渲染原理
2.1 $mount———挂载节点
2.2 parseHTML———解析模板
2.3 codegen———生成render
2.4 initLifecycle———Mount? Mount!
2.5 源码解读———你的实现,我的实现,其实都一样
2.5.1 绑定静态方法
2.5.2 $mount的执行线
2.5.3 回 顾
第3章 依赖收集原理
3.1 另一个JavaScript高阶知识
3.1.1 观察者模式与发布订阅模式
3.1.2 没事走两步———什么是异步
3.1.3 mergeConfig———怎么合并两个对象
3.2 Watcher&Dep———依赖收集
3.3 nextTick———异步更新原理
3.4 Mixin———这难道不是 mergeConfig
3.5 callHook———生命周期是这样执行的
3.6 源码分析之我是抄的
3.6.1 Vue2中的依赖收集
3.6.2 异步更新源码
3.6.3 原来你是这样的 Mixin
3.6.4 生命周期钩子是不是这样调用的
第4章 Watcher的其他场景
4.1 手写computed实现
4.2 watch的核心是 watcher
4.3 响应式原理补充———数组的更新
4.4 源码分析之不知道怎么编了
4.4.1 原来是这样的响应式
4.4.2 依赖收集不过是彼此铭记
第5章 Diff算法
5.1 前置代码整理
5.2 简单 Diff算法
5.2.1 “当前节点不同”的情况
5.2.2 比对子节点的简单情况
5.3 完整的 Diff算法
5.3.1 优化列表常见操作
5.3.2 为什么循环的时候设置的key不能用数组的下标
5.3.3 乱序比对
5.4 细节调整
5.5 Diff算法的真正源码
第6章 手写 Component
6.1 Vue.extend的实现
6.2 Vue.component的实现
6.3 组件的虚拟节点
6.4 组件的渲染
6.5 组件渲染源码梳理
6.5.1 Vue.extend源码
6.5.2 Vue.component源码
第7章 源码的其他实现
7.1 生命周期源码分析
7.1.1 生命周期的简单调试
7.1.2 生命周期的价值
7.2 Vue.$set源码分析
7.3 component源码分析
7.3.1 组件的更新
7.3.2 异步组件与函数式组件
7.3.3 props源码分析
7.3.4 组件的事件绑定
7.3.5 $children与$parent
7.4 $ref源码分析
7.5 provide和inject
7.6 $attrs与$listeners
7.7 v if与v for
7.8 v model源码分析
7.8.1 parse解析指令
7.8.2 把指令的 AST 转换成render函数
7.8.3 针对v model的complier处理
7.9 自定义指令源码分析
7.9.1 directive方法的注册
7.9.2 解析自定义directive
7.10 修饰符的实现原理
7.10.1 特殊修饰符的特殊处理
7.10.2 表单修饰符的处理
7.10.3 sync修饰符是怎么实现的
7.11 slot源码分析
7.12 keep alive源码分析
第8章 手写 VueRouter源码
8.1 VueRouter使用简介及项目初始化
8.1.1 路由模式
8.1.2 路由组件
8.2 给 Vue组件绑定路由信息
8.3 实现路由的扁平化
8.4 实现路由系统
8.5 实现routerLink组件
8.6 实现routerView 组件
8.7 实现路由守卫
8.8 缝缝补补history模式
第9章 VueRouter源码分析
9.1 寻找入口、安装并运行起来
9.2 解析路由信息
9.3 路由跳转流程
9.4 路由组件
第10章 手写 Vuex源码
10.1 Vuex使用简介
10.2 似曾相识的基本实现
10.3 实现模块收集
10.4 实现模块安装
10.5 实现模块的命名空间
10.6 实现模块的动态注册
10.7 实现插件机制
10.8 实现其他细节
10.8.1 异步的actions
10.8.2 严格模式
10.8.3 辅助函数
第11章 Vuex源码分析
11.1 打包入口及结构
11.2 模块的收集
11.3 模块的安装
第12章 Vue2中的SSR
12.1 项目搭建
12.2 打包客户端代码
12.3 打包服务器端代码
12.4 服务器渲染路由
12.5 在服务器渲染中应用 Vuex
参考文献
|
內容試閱:
|
新手也能写得懂的源码分析教程当您翻开此书时,就决定要跟着我一起手写源码。市面上的很多 Vue相关的技术书,要么想看看不懂,要么看得懂其实没必要看。我希望这本书,可以让想看的人能看懂,能学会,能自己写。看得懂的人,可以提问题,体会一下“破
案”的乐趣,那就完美了。
这本书适合初级、中级前端开发者学习 Vue2源码,书里会逐行、逐句、逐词、逐字地带您手写 Vue2源码,简化复杂的源码体系,抽出核心流程用来手写实现。在教会您手写核心源码的同时,也会带领您梳理源码,双管齐下,让读懂源码不再是翻不过的山。如果您是前端新人,想要学 Vue2源码但又不知从何入手,我相信这本书是您跨过门槛的垫脚石。如果您是初级、中级前端开发者,用了一段时间 Vue2,但是想要学又不知道怎么学源码,我相信这本书是您的不二之选。如果您是前端大神,想要找找 BUG,体会“破案”的乐趣,那么这里绝对是您火眼金睛的试炼场。
希望您是那位有毅力跟着书中的文字去窥视 Vue世界的人。
这本书,献给那些普通又不甘于平庸的前端coder。
按照惯例这是一个序
想了好久,不知道怎么开这个头,连第一句话要怎么说都没想好。刚好,就用我现在的忐忑和扭捏的心情作为这本书最开始的“序言”吧。说真的,从来都没想过自己也会有出书的一天,虽然说出书并不难,但是想要写好一本书却并不容易,尤其是技术类书籍;也着实怕写了出来,误人子弟,这就是忐忑的缘由了。
作为搞技术并且想要搞好技术的人,在前端领域摸爬滚打了多年,虽无顶尖的视角,但是也有了些许的经验,总是想要把自己的理解和认识分享给正在路上攀登的奋斗者,希望大家可以少走一点弯路,那么假如这本书能给大家哪怕一丝的感悟和进步,我就十分欣喜了。我工作的这些年,一直有写博客的习惯,再加上前段时间一直在学珠峰的前端架构课程,所以,就想把自己在学习 Vue2源码过程中的感悟和理解,以及一些思路分享给大家,一起学习、进步。
说说这本书吧,本书是关于 Vue2源码分析的书,好吧,这等于没说。但是我觉得这本书全篇所讲的东西与 Vue无关,讲的都是JavaScript本身,以及算法、模式。那么我相信您肯定会问,Vue3都出了这么久了,市面上 Vue2分析的书也那么多,这本书有什么优点? 我的答案是:这本书不仅讲源码,更是在写源码。很多人一听到源码,就会感觉十分高端和遥远,可能会问:“我才工作一年,能看得懂源码吗?”在回答这个问题之前,我们先简单分析下,源码是什么? 源码说到底不过就是“人写的代码”。既然是人写的代码,那有什么看不懂的呢? 其中无非就是:点(某些 API的使用)、线(某些逻辑线的梳理)以及由点和线拼成的面所形成的结果。那么本书中遇到复杂的点,比如 ES6的有些高阶 API,比如原型链等,Vue的核心逻辑线:响应式原理、生命周期、依赖收集等,编者都会带大家深入地去书写、学习和理解。所以,读完本书,您不仅可了解 Vue知识,还可掌撑真正构建 Vue的底层核心内容。学到的也不仅仅是 Vue的用法和原理,还有对JavaScript,甚至是对于编程语言的深入解析。
您可能会问,学完了这本书,能达到什么水平? 我觉得你学完这本书,算是入门了。没错,就是入门,这本书能让您领略源码的风采,不再需要依赖于什么博客文章、什么大神指导,仅此而已。
另外,其实对于像 Vue、React等这样的大型前端框架,源码可以分为两部分:构建和应用。这两个词简单理解,就是一部分代码是用来打包、压缩我们运行时的代码的,另外一部分就是应用代码本身。本书仅会关注应用部分的源码,而不会详细分析 Vue的打包构建。一方面是因为本人能力有限;另外一方面是因为打包构建这个话题有点大,我实在没想好要怎么说。
好了,跟着我手摸手一起走进 Vue2的世界吧!
编 者
|
|