vuex教程
时间: 2023-06-29 18:13:21 浏览: 88
Vuex是一个专门为Vue.js设计的状态管理模式和库,它能够帮助我们在Vue应用程序中更好的管理和控制应用程序的状态。下面是Vuex教程的大体内容:
1. 安装Vuex
通过npm或者yarn进行安装:`npm install vuex` 或 `yarn add vuex`
2. 创建store
在项目中创建一个store.js文件,然后通过Vuex提供的createStore方法创建store对象:
```
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++
}
},
actions: {
incrementAsync ({ commit }) {
setTimeout(() => {
commit('increment')
}, 1000)
}
}
})
export default store
```
3. 在Vue应用中使用store
在main.js中导入store.js,并在Vue实例中注册store:
```
import Vue from 'vue'
import App from './App.vue'
import store from './store'
new Vue({
store,
render: h => h(App)
}).$mount('#app')
```
4. 使用state
使用mapState辅助函数来获取state中的数据:
```
<template>
<div>
<p>Count: {{ count }}</p>
<button @click="increment">Increment</button>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
computed: {
...mapState(['count'])
},
methods: {
increment() {
this.$store.commit('increment')
}
}
}
</script>
```
5. 使用mutations
通过commit方法来触发mutations中的方法:
```
<template>
<div>
<p>Count: {{ count }}</p>
<button @click="increment">Increment</button>
</div>
</template>
<script>
import { mapState } from 'vuex'
export default {
computed: {
...mapState(['count'])
},
methods: {
increment() {
this.$store.commit('increment')
}
}
}
</script>
```
6. 使用actions
使用dispatch方法来触发actions中的方法:
```
<template>
<div>
<p>Count: {{ count }}</p>
<button @click="incrementAsync">Increment Async</button>
</div>
</template>
<script>
import { mapState, mapActions } from 'vuex'
export default {
computed: {
...mapState(['count'])
},
methods: {
...mapActions(['incrementAsync'])
}
}
</script>
```
以上是Vuex教程的大体内容,希望对你有所帮助。
阅读全文