封面
版权信息
序
前言
第一篇 框架设计概览
第1章 权衡的艺术
NOTE
视图层框架设计方面的内容
2022-12-13 23:15:26
NOTE
jQuery 就是典型的命令式框架。命令式框架的一大特点就是关注过程
2022-12-13 23:16:47
NOTE
自然语言描述能够与代码产生一一对应的关系,代码本身描述的是“做事的过程”,这符合我们的逻辑直觉
2022-12-13 23:18:07
NOTE
我们提供的是一个“结果”,至于如何实现这个“结果”,我们并不关心
2022-12-13 23:19:59
NOTE
Vue.js 帮我们封装了过程。因此,我们能够猜到 Vue.js 的内部实现一定是命令式的,而暴露给用户的却更加声明式
2022-12-13 23:20:25
NOTE
理论上命令式代码可以做到极致的性能优化,因为我们明确知道哪些发生了变更,只做必要的修改就行了
2022-12-13 23:22:23
NOTE
为了实现最优的更新性能,它需要找到前后的差异并只更新变化的地方,但是最终完成这次更新的代码仍然是
2022-12-13 23:22:40
NOTE
框架本身就是封装了命令式代码才实现了面向用户的声明式。这符合前文中给出的性能结论:声明式代码的性能不优于命令式代码的性能
2022-12-13 23:23:07
NOTE
声明式代码的可维护性更强
2022-12-13 23:23:22
NOTE
使用 innerHTML 操作页面和虚拟 DOM 相比性能如何?
2022-12-13 23:30:48
NOTE
HTML 字符串拼接的计算量 + innerHTML 的 DOM 计算量
2022-12-13 23:32:34
NOTE
innerHTML、虚拟 DOM 以及原生 JavaScript(指 createElement 等方法)在更新页面时的性能
2022-12-13 23:34:45
NOTE
纯运行时的、运行时 + 编译时的或纯编译时的
2022-12-13 23:35:07
NOTE
直接为 Render 函数提供了一个树型结构的数据对象
2022-12-13 23:40:47
NOTE
既然编译器可以把 HTML 字符串编译成数据对象,那么能不能直接编译成命令式代码呢?
2022-12-13 23:42:31
NOTE
没办法分析用户提供的内容
2022-12-13 23:43:32
NOTE
Svelte 就是纯编译时的框架,但是它的真实性能可能达不到理论高度
2022-12-13 23:44:16
第2章 框架设计的核心要素
NOTE
热更新(hot module replacement,HMR)需要框架层面的支持,我们是否也应该考虑?
2022-12-13 23:30:08