写点什么

Vuex3.1.1 更新:支持 jsDelivr,修复内存泄漏

  • 2019-05-23
  • 本文字数:1759 字

    阅读完需:约 6 分钟

Vuex3.1.1更新:支持jsDelivr,修复内存泄漏

JavaScript 已成为庞大、多样化并快速发展的编程语言。每当 JS 的框架或库发布更新,社区中与之相关的项目也会随之作出改进——Vue.js 及其附属项目就是典型例子。


Vuex 是简单直观的状态管理服务,但它的更新步伐是跟随 Vue.js 的,所以有时新版 Vue.js 的功能会迟一些才能获得 Vuex 的支持。


例如,原生移动应用已经广泛流行。许多 JavaScript 项目都有对应的库和框架等组件来开发应用。


和 Vue 类似,NativeScript-Vue 也是一个 NativeScript 插件,让开发者可以使用 Vue 来制作移动应用。Vuex 还可以与 NativeScript-Vue 集成,以便与组件的状态机一起使用,但它缺乏良好的调试机制。


Vuex的3.1.1版本已经开始处理这个问题了。除了支持在 NativeScript 应用中调试 Vuex 之外,这一版更新还有很多改进,例如纳入 jsDelivr CDN npm 包,并修复了模块注册的内存泄漏错误等。这个版本没有重大改动,所以升级项目时无需担心。


你可以查看更新日志和官宣资料、贡献者提交内容来了解更多信息。下面我们具体看一下。

支持在 NativeScript 应用中调试 Vuex

Vue-remote-devtools 是使用 Vue.js 开发 NativeScript 应用的官方 Vue 开发工具应用。它基于 Node.js 和 Chromium,让开发者可以轻松调试 HTML/CSS/JS 应用(这里的例子则是 Vue):



此外,vue-devtools是一个用于调试基于 Web 的 Vue 应用的浏览器扩展,可以与 Vuex 及其状态管理库无缝集成,让开发者可以可视化之前的状态并在它们之间来回切换。这对所谓时间旅行调试的流程非常有用(例如,你可以在各个状态间进退自如)。


但对于 NativeScript 项目来说,这一版本之前是没有这个功能的。现在开发者可以在非浏览器环境下检查 Vuex 状态。如果你不太了解Vuex状态管理,可以参阅此处链接了解更多信息:


https://vuex.vuejs.org/guide/state.html

为浏览器提供的新的缩小器和 ES 模块

在 ES 模块出现之前,开发者通常会将 JavaScript 代码像下面这样导入 HTML 页面:


<script src="https://some-cdn.com/vue.js"></script><script>new Vue();</script>
复制代码


这种导入 JS 库的经典方法有一些缺陷:每次导入的顺序必须是正确的;如果顺序不正确,下面的脚本就会找不到依赖项。这种方法还将对象和函数暴露给了全局命名空间,因此任何人都可以访问并更改它们。此外你还可能犯导入文件两次的错误——缺陷还不止这些。


Vue 就遇到了这个问题。在 2.6 版之前,它在构建过程中没有专门在浏览器中加载 Vue 模块的步骤。所以下面这样的代码是不行的:


<script type=”module” src=”vue.esm.js”></script>
复制代码


结果从 2.6 版开始,因为现在所有人都会在浏览器中使用 ES 模块,Vue 在构建流程中加入了这一步。


此外 Vuex 也面临相同的问题,但到了 3.1.1 版本才得到解决。现在要将 Vuex 直接导入浏览器,只需使用:


<script type=”module” src=”vuex.esm.browser.js”></script>// Or below for the min version<script type=”module” src=”vuex.esm.browser.min.js”></script>
复制代码


此外该版本还加入了名为 Terser 的新的缩小器。这是因为之前的缩小器 UglifyJS 不再维护了,而且后者只支持 ECMAScript 5,Terser支持 ES6+。


对于开发者来说这没什么区别。另外,因为 Terser 是 UglifyJS 的一个分支,所以它保持了对 uglify-es 和 uglify-js@3 的 API 和 CLI 兼容性的支持。

支持 jsDelivr

jsDelivr比大多数CDN都快得多。现在,你还可以从 jsDelivr 导入Vuex

修复注册/注销模块时内存泄漏问题

模块可以把我们的商店分成更小和更可控的部分,因为整个状态包含在 Vuex 中的一个大对象里。要在商店中添加或删除模块,我们只需要分别调用 store.registerModule 或 store.unregisterModule 即可。


但在大型应用中管理浏览器内存可能有点棘手。 这有一个已知问题,需要一个应用程序添加数百个模块并在之后立即取消注册,这导致堆内存未被清除。 你可以想象下一步会发生什么…内存泄漏。


这一版的修复会简单地在函数 resetStoreVM 中对 oldVm 实例做垃圾回收,该函数负责在高峰期活动之后恢复 vm。

小结

完整更新列表可参阅此处(https://github.com/vuejs/vuex/releases),其中还有之前版本的更新介绍。如果你希望了解有关 Vuex 的更多信息,请参阅其官方入门指南:


https://vuex.vuejs.org/guide/


英文原文:


https://blog.logrocket.com/whats-new-in-vuex-3-1-1-d796b0c791bf



2019-05-23 18:165911

评论

发布
暂无评论
发现更多内容

人工智能 | 基于ChatGPT开发人工智能服务平台

测试人

人工智能 软件测试

从数据中台到数据飞轮:企业数字化战略的新范式

不叫猫先生

数据中台 数据仓库 数据 数据飞轮

淘宝API接口:关键词搜索商品列表数据接口

tbapi

淘宝API接口 淘宝商品列表数据接口

Rhinoceros 8破解版 犀牛8中文直装版【Mac&win】

理理

【中文汉化版】W10 Digital Activation win10激活工具 win11激活

理理

数据飞轮:企业数字化转型的下一站风口

不叫猫先生

数据中台 数据仓库 数据 数据飞轮

鸿蒙跨端实践-布局方案介绍

京东科技开发者

校园跑腿小程序前端零基础带你开发一款属于自己的校园跑腿小程序 同城跑腿代办小程序开发学习代取快递代买东西代寄快递含骑手端管理员端用户端 校园圈子论坛

多客潇潇

macos苹果电脑深度清理卸载工具App Cleaner & Uninstaller 完美兼容苹果Sequoia 15系统

理理

Pixologic ZBrush 2024下载 附ZBrush 2024破解补丁 三维数字雕刻

理理

程序逆向反汇编修改神器:IDA Pro/x64dbg

理理

万兆时代 TCP/IP如何赋能以太网飞跃

郑州埃文科技

TCP/IP 以太网

Zabbix 2024 中国峰会在上海举办,Databuff 携最业界领先研发成果重磅亮相

乘云数字DataBuff

故障定位 zabbix 峰会

面试官:单核服务器可以不加锁吗?

王磊

TablePlus for Mac/win (本地原生数据开发软件)v6.0.0激活版

理理

天猫商品详情数据API接口:解锁高效数据获取的钥匙

代码忍者

API 接口 pinduoduo API

TinkerTool System 9 for mac苹果电脑系统设置和维护工具 支持苹果mac15系统

理理

专业的园林设计软件Garden Planner下载含Garden Planner激活码

理理

VMware NSX Advanced Load Balancer (NSX ALB) 22.1.7 发布下载,新增功能概览

sysin

负载均衡 Lab nsx

架构设计的悖论,复用是美好的还是邪恶的

阿里技术

阿里巴巴 中台 Supercell 代码复用 DRY原则

Things3 3.21.1 中文直装版 mac任务管理器

理理

(全新升级AlDente - 电荷限制器) AlDente Pro for mac v1.28.2 兼容macos15系统

理理

百度Android IM SDK组件能力建设及应用

百度Geek说

聊天 IM sdk 安卓 即时通讯IM

淘宝商品详情数据api接口深度探索:解锁商品信息的全面视角

代码忍者

API 接口 pinduoduo API

小间距显示屏方案的具体要求

Dylan

应用 LED LED display LED显示屏 效果广告

鸿蒙NEXT生态应用核心技术理念:统一生态,原生智能

芯盾时代

鸿蒙 生态

【Tomcat源码分析】启动过程深度解析 (二)

派大星

tomcat源码解读

【堡垒机小知识】堡垒机常见运维方式你知道几种呢?

行云管家

网络安全 堡垒机 运维审计

随州等保测评机构在哪里?电话多少?

行云管家

等保 堡垒机 等保测评 随州

技术解读 MySQL InnoDB 大对象存储格式

华为云开发者联盟

概念回顾:现代应用架构中的数据平面、管理平面和控制平面

NGINX开源社区

读书笔记 开源 个人成长

Vuex3.1.1更新:支持jsDelivr,修复内存泄漏_语言 & 开发_Diogo Souza_InfoQ精选文章