50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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

评论

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

融云 Web SDK 如何实现语音的收发 ?

融云 RongCloud

唠一唠融云的消息补偿机制

融云 RongCloud

几张图解释明白 Istio!

xcbeyond

Service Mesh istio 3月日更

作为小白接融云 IM SDK 新路体验~

融云 RongCloud

融云IM SDK web 端集成 — 表情采坑篇

融云 RongCloud

如何开好每日晨会?

石云升

项目管理 28天写作 职场经验 管理经验 3月日更

Web 端集成融云 SDK 如何发送正确图片消息给移动端展示?

融云 RongCloud

干货分享——使用融云通讯能力库 IMLib 实现单群聊的阅读回执

融云 RongCloud

微信小程序集成融云 SDK (即时通讯) 集成必备条件

融云 RongCloud

融云自定义消息不显示

融云 RongCloud

关于融云 SDK 在使用 p8 证书的坎坷~

融云 RongCloud

平安智慧社区解决方案,平安社区综合管理平台

13530558032

融云 Web SDK 删除历史消息

融云 RongCloud

区块链农产品溯源方案,区块链溯源平台

13530558032

区块链版权保护平台--催生版权保护新格局

13530558032

使用融云 Web SDK 撤回消息

融云 RongCloud

自定义融云会话列表 cell 选中背景

融云 RongCloud

融云 IMKit 音频录制参数

融云 RongCloud

融云 SDK 如何实现群组操作

融云 RongCloud

融云 Web SDK 如何实现表情的收发 ?

融云 RongCloud

大作业

eva

文档 用例

集成融云 SDK 怎么实现多端同步未读数

融云 RongCloud

集成融云小程序 SDK 遇到的问题

融云 RongCloud

如何隐藏融云输入框语音按钮

融云 RongCloud

给融云的输入框上方加个功能按钮,怎么整?

融云 RongCloud

融云会话页面刷新不及时问题

融云 RongCloud

融云 RTC SDK 集成实现直播,趟坑之旅~~~

融云 RongCloud

如何利用融云 IMLib 来实现一个阅后即焚功能

融云 RongCloud

Web 端使用融云 SDK 集成实现滑动加载历史消息

融云 RongCloud

使用融云 IM SDK 实现 H5 直播聊天

融云 RongCloud

提醒小程序的产品文档——大作业心得总结

小匚

产品经理 随笔杂谈 产品经理训练营 极客大学产品经理训练营

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