vue defineStore
时间: 2024-06-09 22:11:29 浏览: 163
vue-shop:商店
`defineStore` 是 Vue 3 中用于定义 Vuex4 中的 store 的函数。它可以让我们使用类似于 Vuex 的方式来管理组件之间的状态。`defineStore` 函数接收一个对象作为参数,对象中包含了 state、mutations、actions、getters 等属性。其中,state 用于存放数据,mutations 用于修改 state 中的数据,actions 用于处理异步操作,getters 用于获取 state 中的数据。
例如,我们可以这样使用 `defineStore` 来定义一个 store:
```javascript
import { defineStore } from 'vuex';
import axios from 'axios';
const store = defineStore({
state: {
users: [],
},
mutations: {
setUsers(state, payload) {
state.users = payload;
},
},
actions: {
async fetchUsers({ commit }) {
const response = await axios.get('https://jsonplaceholder.typicode.com/users');
commit('setUsers', response.data);
},
},
getters: {
getUserById: (state) => (id) => {
return state.users.find((user) => user.id === id);
},
},
});
export default store;
```
然后,在组件中使用 `useStore` 函数来获取 store 对象,可以像这样:
```javascript
import { useStore } from 'vuex';
export default {
setup() {
const store = useStore();
// 使用 store 中的数据和方法
console.log(store.state.users);
store.dispatch('fetchUsers');
},
};
```
以上就是使用 `defineStore` 定义 Vuex4 中的 store 的基本方法。
阅读全文