/*#__PURE__*/注释,可告知构建工具哪些函数无副作用,可安全移除。
__DEV__常量,在生产环境移除调试代码。
/*#__PURE__*/注释,优化代码体积。
<script>标签、打包工具和 Node.js 环境。
registerErrorHandler函数,用户可注册自定义错误处理程序。
WeakMap存储依赖关系,避免内存泄漏。
computed值时才执行计算,并缓存结果。
A: 这种架构兼顾了灵活性和性能。运行时允许动态创建组件,编译时可分析模板,提取关键信息,用于运行时优化。
A: Tree-Shaking 指的是消除那些永远不会被执行的代码,也就是排除 dead code 。Vue.js 3 中利用 Tree-Shaking 机制配合构建工具,移除未使用的代码,减小打包体积。
A: ref 是一种包裹原始值的响应式方案,解决 JavaScript 的 Proxy 无法代理原始值的问题。响应式对象基于 Proxy 直接代理对象属性。
A: 客户端激活是同构渲染的关键步骤。它将服务端渲染的静态 HTML “激活”为可交互的 Vue.js 应用,包括: - 在 DOM 元素与虚拟节点对象之间建立联系。 - 为 DOM 元素添加事件绑定。
A: Block 本质上也是一个虚拟 DOM 节点,只是多出了一个用来存储动态子节点的 dynamicChildren 数组。 在 Diff 过程中, 渲染器能够根据 Block 的 key 值区分出更新前后的两个 Block 是不同的, 并使用新的 Block 替换旧的 Block 。 在 Vue.js 3 中, 只有根节点, v-for 、 v-if/v-else-if/v-else 等结构化指令的节点, 都应该作为 Block 角色。
本书适合对Vue.js 2/3具有上手经验,且希望进一步理解Vue.js框架设计原理的开发人员;也适合没有使用过Vue.js,但对Vue.js框架设计感兴趣的前端开发人员。
Vue.js 3是Vue.js框架的一个重要版本,它在Vue.js 2的基础上进行了诸多改进和创新,包括性能优化、模块拆分、TypeScript支持等方面。本书的创作背景是Vue.js 3发布后,为了帮助开发者更好地理解和使用Vue.js 3。