uniapp如何使用store
时间: 2023-07-20 20:31:02 浏览: 208
基于uniapp+ts 开发小程序的项目最佳实践模板,支持快速迭代,二次开发
Uniapp使用Vuex作为状态管理器,来管理全局的数据状态。Vuex是一个专为 Vue.js 应用程序开发的状态管理模式,它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
使用Store前,需要先安装Vuex。可以在uniapp项目的根目录下运行以下命令安装:
```
npm install vuex --save
```
安装完成后,在项目中新建一个store文件夹,然后在该文件夹下新建一个index.js文件,作为store的入口文件。在该文件中可以定义state、mutations、actions和getters等。
以下是一个简单的store示例:
```javascript
// store/index.js
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)
}
},
getters: {
getCount(state) {
return state.count
}
}
})
export default store
```
在组件中使用store,需要先导入store,然后使用computed计算属性或者$store.state来获取状态,使用$store.commit来提交mutation,使用$store.dispatch来触发action。
以下是一个简单的组件示例:
```javascript
// components/Counter.vue
<template>
<div>
<p>Count: {{getCount}}</p>
<button @click="increment">Increment</button>
<button @click="incrementAsync">Increment Async</button>
</div>
</template>
<script>
import { mapGetters } from 'vuex'
export default {
computed: {
...mapGetters(['getCount'])
},
methods: {
increment() {
this.$store.commit('increment')
},
incrementAsync() {
this.$store.dispatch('incrementAsync')
}
}
}
</script>
```
以上就是使用store的基本步骤。在实际开发中,可以根据需要定义更多的状态、mutation、action和getter。
阅读全文