专门做游戏的网站网络推广策划方案设计
专门做游戏的网站,网络推广策划方案设计,seo网站怎么建设,免费咨询图片本文为翻译 原文地址#xff1a;Announcing Vue 3.4 | The Vue Point — Vue 3.4 发布公告 |Vue 点 (vuejs.org) 今天#xff0c;我们很高兴地宣布 Vue 3.4 “#x1f3c0;灌篮高手”的发布#xff01;
此版本包括一些实质性的内部改进 - 最引人注目的是重写的模板解析器Announcing Vue 3.4 | The Vue Point — Vue 3.4 发布公告 |Vue 点 (vuejs.org) 今天我们很高兴地宣布 Vue 3.4 “灌篮高手”的发布
此版本包括一些实质性的内部改进 - 最引人注目的是重写的模板解析器速度提高了 2 倍以及重构的反应系统使效果触发更加准确和高效。它还包含许多生活质量 API 改进包括绑定 prop 时的 defineModel 稳定性和新的同名速记。
这篇文章概述了 3.4 中的突出功能。有关更改的完整列表请参阅 GitHub 上的完整更新日志。
可能需要采取的行动
为了充分利用 3.4 中的新功能建议在升级到 3.4 时还更新以下依赖项 Volar / vue-tsc^1.8.27 (required)vitejs/plugin-vue^5.0.0 (如果使用 Vite)nuxt^3.9.0 (如果使用 Nuxt)vue-loader^17.4.0 (如果使用 webpack or vue-cli) 如果将 TSX 与 Vue 一起使用请在 Removed: Global JSX Namespace 中检查所需的操作。确保您不再使用任何已弃用的特性(如果使用了控制台中应该有警告告诉您)。它们可能在3.4中被删除了。
亮点功能
解析速度提高 2 倍SFC 构建性能提高
Context: PR#9674
在 3.4 中我们完全重写了模板解析器。以前Vue 使用递归下降解析器它依赖于许多正则表达式和前瞻搜索。新的解析器使用基于 htmlparser2 中的分词器的状态机分词器该分词器仅循环访问整个模板字符串一次。其结果是对于各种大小的模板解析器的速度始终是原来的两倍。由于我们广泛的测试用例和 ecosystem-ci它也 100% 向后兼容 Vue 最终用户。
在将新的解析器与系统的其他部分集成时我们还发现了一些进一步提高整体 SFC 编译性能的机会。基准测试显示在生成源映射的同时编译 Vue SFC 的脚本和模板部分时有 ~44% 的改进因此 3.4 应该会为大多数使用 Vue SFC 的项目带来更快的构建速度。但是请注意在现实世界项目中Vue SFC 编译只是整个构建过程的一部分。与孤立的基准测试相比端到端构建时间的最终收益可能要小得多。
在 Vue 核心之外新的解析器还将有利于 Volar / vue-tsc 的性能以及需要解析 Vue SFC 或模板的社区插件例如 Vue 宏。
更高效的反应系统
Context: PR#5912
3.4 还对响应式系统进行了实质性的重构目的是提高计算属性的重新计算效率。
为了说明正在改进的内容让我们考虑以下方案
const count ref(0)
const isEven computed(() count.value % 2 0)watchEffect(() console.log(isEven.value)) // logs truecount.value 2 // logs true again在 3.4 之前即使计算结果保持不变每次 count.value 都将触发 watchEffect 的回调。在 3.4 之后的优化中回调现在仅在计算结果实际更改时触发。
此外在 3.4 中
多个计算的 dep 更改仅触发一次同步效果。数组的 shift unshift splice 方法仅触发一次同步效果。
除了基准测试中显示的收益外这应该会减少许多场景中不必要的组件重新渲染同时保持完全的向后兼容性。
defineModel 现在稳定了
Context: RFC#503
defineModel 是一个新的 宏旨在简化支持 v-model .它之前在 3.3 中作为实验性功能发布并在 3.4 中升级为稳定状态。现在它还为修 v-model 饰符的使用提供了更好的支持。
相关文件
Revised Component v-model sectiondefineModel API reference
v-bind 同名速记
Context: PR#9451
您现在可以缩短此时间
img :idid :srcsrc :altalt对比
img :id :src :alt过去经常请求此功能。最初我们担心它的用法与布尔属性混淆。然而在重新审视了这个特性之后我们现在认为考虑到它的动态特性它的行为更像 JavaScript 而不是原生属性是有意义的 v-bind 。
改进了水合不匹配错误
Context: PR#5953
3.4 版本对水和Hydration不匹配错误消息进行了多项改进
改进了措辞 (由服务器呈现与客户端预期呈现)。该消息现在包含有问题的 DOM 节点因此您可以在页面或元素面板中快速找到它。冻结不匹配检查现在也适用于类、样式和其他动态绑定属性。
此外在3.4 版本中还添加了一个新的编译时标志 __VUE_PROD_HYDRATION_MISMATCH_DETAILS__ 标志可用于强制冻结不匹配错误即使在生产环境中也包含完整的细节。
错误代码和编译时标志参考
为了减小 bundle 大小Vue 在生产构建中丢弃了长错误消息字符串。然而这意味着在生产环境中被错误处理程序捕获的错误将收到简短的错误代码如果不深入研究 Vue 的源代码这些错误代码很难破译。
为了改进这一点我们在文档中添加了一个生产错误参考页面。错误代码是从最新版本的 Vue 稳定版本自动生成的。
我们还添加了编译时标志参考其中包含有关如何为不同的生成工具配置这些标志的说明。
删除了已弃用的功能
全局 JSX 命名空间
从 3.4 开始Vue 默认不再注册全局 JSX 命名空间。这是避免与 React 发生全局命名空间冲突所必需的以便两个库的 TSX 可以共存于同一个项目中。这应该不会影响使用最新版本的 Volar 的 SFC 的用户。
如果您使用的是 TSX则有两种选择
在升级到 3.4 之前在tsconfig.json 中将 jsxImportSource 显式设置为 vue。您还可以通过在文件顶部添加 /* jsxImportSource vue */ 注释来选择加入每个文件。如果您的代码依赖于全局 JSX 命名空间的存在例如使用 JSX.Element 类型等则可以通过显式引用 vue/jsx 来保留 3.4 之前的确切全局行为这将注册全局 JSX 命名空间。
请注意这是次要版本中的纯类型中断性变更它遵循我们的发布策略。
其他已删除的功能
反应性转换在 3.3 版本中被标记为已弃用现在在 3.4 版本中删除。由于该功能是实验性的因此此更改不需要 在major 版本。希望继续使用该功能的用户可以通过 Vue Macros 插件进行。app.config.unwrapInjectedRef 已被删除。它在 3.3 中已弃用并默认启用。在 3.4 中无法再禁用此行为。vnodeXXX 模板中的事件侦听器现在是编译器错误而不是弃用警告。请改用 vue:XXX 侦听器。v-is 指令已被删除。它在 3.3 中已弃用。请改用带 vue: 前缀的 is 属性。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/86838.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!