写点什么

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:005191

评论

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

架构师必看!现代应用架构发展趋势与数据库选型建议丨TiDB vs MySQL 专题(一)

PingCAP

分布式 TiDB #Mysql

AI领航:智能商品管理如何引爆时尚零售增长新引擎?

第七在线

Hyperliquid巨鲸50倍做空赚510万对其会有何影响

TechubNews

比特币 以太坊 合约

生物医药蛋白分子数据采集:支撑大模型训练的技术实践分享

颜淡慕潇

网络协议 数据采集

豆包MarsCode Agent 登顶 SWE-bench Lite 评测集

火山引擎开发者社区

MarsCode AI实战:利用DeepSeek 快速搭建你的口语学习搭子

火山引擎开发者社区

CAD中的圆角、倒角、延伸、修剪、偏移功能你了解吗?

在路上

cad

数据可信安全流通实战|隐语开源社区Meetup武汉站

隐语SecretFlow

Python #大数据 AI'

【Redis技术进阶之路】「原理分析系列开篇」探索事件驱动枚型与数据特久化原理实现(数据持久化的实现RDB)

码界西柚

redis RDB 快照 redis 底层原理 数据持久化

一个好的产品应该具备什么要素?

执于业务

数字先锋 | 如何提升工业园区算力服务,天翼云息壤给出答案!

天翼云开发者社区

云计算 数字化转型 算力服务

Fabric8 Kubernetes 教程——客户端基础

FunTester

DNSSEC是什么?DNSSEC有什么用?

防火墙后吃泡面

抖音集团大数据血缘演进与深度应用

火山引擎开发者社区

ToDesk、青椒云、顺网云算力对决:老旧电脑跑AI哪家强?真实数据揭秘

小喵子

云电脑 AI 数据基础设施 ToDesk云电脑 #AIGC

Apache SeaTunnel脚本升级及参数调优实战

Apache SeaTunnel

“人工智能+”智赋千行百业!

天翼云开发者社区

人工智能 数字中国 DeepSeek

新闻速递丨Altair中国合作伙伴大会圆满落幕:以AI与HPC技术融合,共筑智造新生态

Altair RapidMiner

云计算 HPC 制造业 智能制造 仿真软件

9年码龄3万粉博主教你从0到1用腾讯云代码助手 + DeepSeek 写一个浏览器插件

CodeBuddy

腾讯云 DeepSeek 腾讯云 AI 代码助手 CodeBuddy

波场trx质押能量租赁平台开发

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

C#实现自己的Json解析器(LALR(1)+miniDFA)

不在线第一只蜗牛

C# json

如何用Leangoo破解需求隔离与频繁变更的协作困局?

云端拾光

项目管理 效率工具 团队协作 任务管理 看板软件

云原生时代,如何构建适合自身的 IDP

蚂蚁开源

开源 云原生 蚂蚁 蚂蚁开源

期权秒合约数字货币交易所APP开发全攻略

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

从 0 到 1,掌握微店商品详情数据接口

tbapi

微店商品详情接口 微店API 微店商品数据采集

Dapp钱包IM社区质押秒合约以及AI量化交易所区块链开发系统

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

aixbt 被盗 55.5 ETH,本就孱弱的 AI 代理叙事会「雪上加霜」吗

TechubNews

以太坊 AI

DApp+公链/主链+钱包+Swap开发西安区块链公司

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

TG电报群管理机器人定制开发的重要性

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

去中心化交易所与中心化交易所的差异

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

零基础IM开发入门(五):什么是IM系统的端到端加密?

JackJiang

即时通讯 IM

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