• Vue 3.3.6 发布,得益于WeakMap,它更快了


    性能改进和DOM节点的附加属性的类型检查使新的Vue值得更新Vue团队确实做了很多工作。实际上,他们在同一天发布了两个子版本。Vue 3.3.53.3.6 都在2023年10月20日发布。

    WeakMaps

    其中一个得到改进的是在可能的情况下从 MapsSets 转移到WeakMapsWeakSets

    那是什么,为什么这么重要?

    如果你在 MapsSets 中存储东西,你会对这些东西做一个引用。这意味着,只要MapSet被使用,这个东西就不会被垃圾收集器从内存中释放。

    通常这是有意义的。但有时候不是。特别是当你写一些代码,只是深入到数据的正常工作流中。例如,通过在系统中流动的数据中添加诊断数据。

    当你需要时,你希望数据被释放,你不希望保留保留数据的权利。

    这就是 WeakMaps WeakSets 开始发挥作用的地方,Vue现在在内部更多地使用这些来防止内存泄漏并提高整体性能。

    对 contenteditable="plaintext-only" 的支持

    我认为 contenteditable可以是truefalse。但显然,有第三个值 "plaintext-only"

    通常,当你将参数设置为true时,你也可以编辑格式,粘贴富文本。使用plaintext-only值则不行。

    现在的变化是,Vue不会为HTML规范中定义的合法值抛出 Typescript 错误。

    延迟加载图像

    再次,这只是对HTML特性的类型支持。它在3.3.5中被添加,并使你能够将img的加载参数设置为lazy

    这样,图像不会立即加载,而是当你的浏览器决定你很快就能看到它时加载。

    这是一个标准的HTML特性,已经存在了一段时间,但这个修复是一个很好的提醒,用它来提高应用程序的性能。

    此版本中还有其他的错误修复和性能改进。

    Vue 3.2.40的新功能

    Vue的最新版本,受欢迎的Web框架于2022年9月28日发布,为开发者提供了修复的错误,为3.3版本做准备。

    错误地禁用按钮

    c737bb51e3decdd4bee944c08d20ad84.png

    上面的代码说明了按钮不应该被禁用,因为“false”在属性中实际上是一个字符串,而不是一个布尔值。在Vue的最新版本中,它通过检查属性的类型来修复。

    V-on不会抛出错误

    7107471b002780c774ab4d8be93bf4c8.png

    上面的代码和类似的最近抛出了错误,而它们本应该正常工作,它也被修复了。

    事件被正确地触发

    24ef1ba7194bb6e5f9870f128311f07c.png

    上述代码并没有导致 onBlur被调用,而它应该被调用。动态和静态v-on的合并导致这个bug消失。

    修复了一个内存泄漏

    38323c11a2e132dbb6080559c7886cab.png

    在上述情况下,在dev场景中内存没有被正确清理。它是由于提升的 vnodes不正确地保留了DOM节点引起的。现在也修复了。

    这些是最有趣的修复,在其他一些与SSR有关的问题也被修复了,团队正在大力工作。

    Vue 3.2.41-45 的3个最有趣的错误修复

    Vue团队上个月并没有休息。刚刚介绍了Vue 3.2.40,现在已经有了五个新的小版本。下面将带你了解最重要的错误修复。

    Vue对奇怪的单文件组件(SFC)抛出错误

    传递给单文件组件解析器的代码没有