From c3944f33690aae47b7113edebbf13fffe01b9256 Mon Sep 17 00:00:00 2001 From: Kia King Ishii Date: Tue, 2 Feb 2021 23:48:44 +0900 Subject: [PATCH] release: v4.0.0 --- CHANGELOG.md | 108 +++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 109 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eceaa84e3..ad47f4007 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,111 @@ +# [4.0.0](https://github.com/vuejs/vuex/compare/v4.0.0-rc.2...v4.0.0) (2021-02-02) + +This is the official Vuex 4 release. + +The focus for Vuex 4 is compatibility. Vuex 4 supports Vue 3, and it provides the exact same API as Vuex 3, so users can reuse their existing Vuex code with Vue 3. + +There are a few breaking changes described in a later section, so please check them out. + +You can find basic usage with both Option and Composition API in the `example` directory. + +It's still released under `next` tag in NPM package as same as Vue 3. We're planning to remove `next` tag once Vue 3 is ready to remove it. + +There have been a lot of contribution to make Vuex 4 stable. Thank you all for your very much appreciated help. It wouldn't have been possible without this wonderful Vue community! + +## Documentation + +To check out docs, visit [next.vuex.vuejs.org](https://next.vuex.vuejs.org/). + +## Breaking changes + +### Installation process has changed + +To align with the new Vue 3 initialization process, the installation process of Vuex has changed. + +To create a new store instance, users are now encouraged to use the newly introduced `createStore` function. + +```js +import { createStore } from 'vuex' + +export const store = createStore({ + state() { + return { + count: 1 + } + } +}) +``` + +> Whilst this is not technically a breaking change, you may still use the `new Store(...)` syntax, we recommend this approach to align with Vue 3 and Vue Router Next. + +To install Vuex to a Vue instance, pass the store instance instead of Vuex. + +```js +import { createApp } from 'vue' +import { store } from './store' +import App from './App.vue' + +const app = createApp(App) + +app.use(store) + +app.mount('#app') +``` + +### Bundles are now aligned with Vue 3 + +The following bundles are generated to align with Vue 3 bundles: + +- `vuex.global(.prod).js` + - For direct use with `