vuex教程
时间: 2023-06-29 12:13:37 浏览: 104
Vuex 是一个专门为 Vue.js 应用程序开发的状态管理库。它允许您在应用程序中集中管理状态,并且使得状态的变化可追踪、可调试和可维护。以下是一个简单的 Vuex 教程,帮助您开始使用 Vuex。
1. 安装 Vuex
您可以使用 npm 或 yarn 安装 Vuex,命令如下:
```bash
npm install vuex
```
或者
```bash
yarn add vuex
```
2. 创建 Vuex Store
在您的 Vue.js 应用程序中,您需要先创建一个 Vuex Store。Store 是一个容器,它保存了应用程序中所有的状态(也称为 store)。在该容器中,您可以定义状态、修改状态以及监听状态的变化。
```javascript
import Vuex from 'vuex'
import Vue from 'vue'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment(state) {
state.count++
}
},
actions: {
increment(context) {
context.commit('increment')
}
}
})
export default store
```
上面的代码中,我们定义了一个名为 `store` 的 Vuex Store。在 `state` 对象中,我们定义了一个名为 `count` 的状态。在 `mutations` 对象中,我们定义了一个名为 `increment` 的 mutation,该 mutation 用于修改 `count` 状态。在 `actions` 对象中,我们定义了一个名为 `increment` 的 action,该 action 用于调用 `increment` mutation。
3. 在 Vue.js 应用程序中使用 Vuex Store
您可以将 Vuex Store 注入到 Vue.js 应用程序中,以便在组件中使用。
```javascript
import Vue from 'vue'
import App from './App.vue'
import store from './store'
new Vue({
el: '#app',
store,
render: h => h(App)
})
```
在组件中,您可以使用 `mapState` 辅助函数来获取状态,并使用 `mapMutations` 辅助函数来提交 mutation。
```javascript
import { mapState, mapMutations } from 'vuex'
export default {
computed: {
...mapState(['count'])
},
methods: {
...mapMutations(['increment'])
}
}
```
4. 修改状态
在组件中,您可以使用 `this.$store.commit` 方法来提交 mutation,从而修改状态。
```javascript
methods: {
increment() {
this.$store.commit('increment')
}
}
```
在 action 中,您可以使用 `context.commit` 方法来提交 mutation,从而修改状态。
```javascript
actions: {
increment(context) {
context.commit('increment')
}
}
```
5. 使用 getter
getter 可以对状态进行计算,从而派生出一个新的状态。在 Vuex Store 中,您可以使用 `getters` 对象定义 getter。
```javascript
const store = new Vuex.Store({
state: {
count: 0,
doubleCount: 0
},
mutations: {
increment(state) {
state.count++
}
},
actions: {
increment(context) {
context.commit('increment')
}
},
getters: {
doubleCount(state) {
return state.count * 2
}
}
})
```
在组件中,您可以使用 `mapGetters` 辅助函数来获取 getter。
```javascript
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters(['doubleCount'])
}
}
```
这就是一个简单的 Vuex 教程。它可以帮助您开始使用 Vuex,但 Vuex 的功能远不止于此。如果您想深入了解 Vuex,请参阅 Vuex 官方文档。
阅读全文