2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Vuex 4 正式发布:打包现在与 Vue 3 一致

  • 2021-02-05
  • 本文字数:1317 字

    阅读完需:约 4 分钟

Vuex 4 正式发布:打包现在与 Vue 3 一致

Vuex 是一个专门为 Vue.js 应用程序开发的状态管理模式。Vuex 采用集中式存储管理应用的所有组件组件的状态。换句话说,Vuex 就是帮开发者存储多个组件共享的数据,方便开发者对其读取的更改的工具。


Vuex 4 正式版本现已正式发布。


Vuex 4 的改进重点是兼容性。Vuex 4 支持 Vue 3,并提供了与 Vuex 3 完全相同的 API,因此用户可以在 Vue 3 中重用现有的 Vuex 代码。


这个版本还包含一些重大更改,详情见后文。


关于 Option 和 Composition API 的基本用法,请参见 example 目录。


新版还是用 NPM 包发布,放在 next 标签下,和 Vue 3 是一样的。我们计划在 Vue 3 拿掉 next 标签后一并移除 Vuex 4 的 next 标签。


社区为 Vuex 4 的稳定版做出了许多贡献,感谢大家的帮助。

文档

要查看文档,请访问Vuex 官网

重大更改

安装流程已更改

为了与新的 Vue 3 初始化流程保持一致,Vuex 的安装流程已更改。


用户要创建新的 store 实例时,推荐使用新引入的 createStore 函数。


import { createStore } from 'vuex'export const store = createStore({  state() {    return {      count: 1    }  }})
复制代码


从技术上来讲这并不是一个重大更改,不过你还是可以使用 newStore(...)语法,我们建议大家用这种方法来和 Vue 3、Vue Router 4 保持一致。


要将 Vuex 安装到 Vue 实例,请传递 store 实例(而不是 Vuex)。


import { createApp } from 'vue'import { store } from './store'import App from './App.vue'const app = createApp(App)app.use(store)app.mount('#app')
复制代码

打包现在与 Vue 3 一致

新版会生成以下包,以同 Vue 3 包一致:


  • vuex.global(.prod).js

  • 在浏览器中直接用于<scriptsrc="...">。全局公开 Vuex。

  • 全局构建是作为 IIFE 而不是 UMD 构建的,并且只能与<scriptsrc="...">直接共用。

  • 包含硬编码的 prod/dev 分支,并且 prod 构建已预先最小化。使用.prod.js 文件用于生产。

  • vuex.esm-browser(.prod).js

  • 用于原生 ES 模块导入(包括通过<script type="module">支持模块的浏览器。)

  • vuex.esm-bundler.js

  • 用于 webpack、rollup 和 parcel 等打包器。

  • 带有 process.env.NODE_ENV 防护的 prod/dev 分支不受影响(必须由打包器代替)。

  • 不提供缩小的构建(打包后与剩余代码一起处理)。

  • vuex.cjs.js

  • 用于带有 require()的 Node.js 服务端渲染。

ComponentCustomProperties 的类型化

Vuex 4 删除了其在 Vue 组件中 this.$store 的全局类型,以解决问题 #994。与 TypeScript 一起使用时,用户必须声明自己的模块扩充。


将以下代码放在你的项目中,以使 this.$store 正确类型化:


// vuex-shim.d.tsimport { ComponentCustomProperties } from 'vue'import { Store } from 'vuex'declare module '@vue/runtime-core' {  // Declare your own store states.  interface State {    count: number  }  interface ComponentCustomProperties {    $store: Store<State>  }}
复制代码

从核心模块导出 createLogger 函数

在 Vuex 3 中,createLogger 函数是从 vuex/dist/logger 导出的,但它现在已包含在核心包中。你应该直接从 vuex 包导入该函数。


import { createLogger } from 'vuex'
复制代码

4.0.0-rc.2 后加入的错误修复

  • 导出缺少的 storeKey(4ab2947)

  • 修复在 Webpack 包中无法摇树的问题(#1906)(#1907)(aeddf7a)


原文链接:


https://github.com/vuejs/vuex/releases

2021-02-05 12:004984

评论

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

如何让企业上云更省心?云耀X实例一键柔性算力随心配!

轶天下事

6倍性能一直加速一直快,云耀X实例值得中小企业拥有

轶天下事

Koupleless 内核系列|模块化隔离与共享带来的收益与挑战

SOFAStack

开源 模块 架构治理 蚂蚁集团 单体应用架构

华为云新一代柔性算力服务器,加速企业轻松上云数智化转型

平平无奇爱好科技

华为云这款产品性能超越独享实例,企业数字化升级首选!

平平无奇爱好科技

加速企业云上降本增效,提升性能首选云耀X实例

轶天下事

加速一键智能上云,云耀X实例显真功夫

平平无奇爱好科技

一文了解龙蜥社区&芯片厂商研发合作模式

OpenAnolis小助手

操作系统 龙蜥社区 合作模式

加速企业上云新体验,云耀X实例助力数字化转型开启新风向

平平无奇爱好科技

欧特克工程建设峰会在京召开

E科讯

柔性算力随心配,企业一键上云更智能

平平无奇爱好科技

OPPO举办OTalk 开发者交流专场,提供Android 15多元化适配服务

科技热闻

Koupleless 单进程多应用如何解决兼容问题

SOFAStack

开源 应用架构 蚂蚁集团 兼容

2024IT市场权威榜单发布!腾讯云TBDS斩获两大奖项!

腾讯云大数据

TBDS

加速中小企业上云更便捷,新一代柔性算力新物种云耀X实例有妙招

轶天下事

和鲸科技联合中软国际教育,发布 AI 数智科研联合解决方案

ModelWhale

人工智能 科学数据

京东商家智能助手:Multi-Agents 在电商垂域的探索与创新

京东零售技术

人工智能 agent LLM 企业号 5 月 PK 榜

什么是网络钓鱼攻击

德迅云安全杨德俊

MySQL进阶必须掌握的知识点有这些,我没说错吧。

王中阳Go

golang 数据库 算法 面试题 大厂面经

MeetUp 议题征集!龙蜥邀您共同探索智能可观测运维技术

OpenAnolis小助手

操作系统 系统运维 Meetup 龙蜥社区

🐬记一次MySQL执行修改语句超时问题

不在线第一只蜗牛

MySQL 数据库

继Bakkt之后的又一全新力作,ICE推出AI高频交易平台

科技汇

高并发UE4/UE5像素流送云推流解决方案

点量实时云渲染

ue 像素流送 像素流 像素流送技术 UE4

博思白板可以画思维导图吗?boardmix常见问题解答!

彭宏豪95

效率工具 在线白板 办公软件 在线协同 在线协作

加速企业上云数智化创新,云耀X实例有妙招

平平无奇爱好科技

云手机和模拟器的区别:云手机优势大更防封

Ogcloud

本地手机模拟器 云手机 海外云手机 云手机群控

Vuex 4 正式发布:打包现在与 Vue 3 一致_语言 & 开发_Geek_8lftp9_InfoQ精选文章