pinia getter写法并调用
时间: 2024-10-20 14:16:26 浏览: 31
vue3+pinia 面向app项目
在Vue 3中,Pinia(Vuex 4的官方推荐状态管理模式)的getter通常用于读取store中的数据,它们是纯函数,不会触发副作用,当你在组件中使用时,会自动缓存结果以提高性能。getter的写法通常是这样的:
```javascript
// 在store.js文件中
import { defineGetter } from 'pinia'
export const userStore = createStore({
getters: {
getUserInfo: defineGetter(
() => (state) => {
// 这里是从数据库、API或其他数据源获取用户信息
return fetchUserFromBackend(state.userId);
},
{ // 可选的选项
// 强制在初始化时就计算
computedDuringCreate: true,
// 当userId改变时才重新计算
computedWatch: ['userId'],
}
),
},
})
```
然后在组件中通过`useStore()`来访问这个getter:
```javascript
import { useStore } from '@/store';
export default {
setup() {
const userId = ref('123'); // 假设这是从props或vuex state来的
const userInfo = useStore(() => userStore.getUserInfo(userId.value)); // 获取并缓存getUserInfo的结果
// 然后你可以直接在模板中使用userInfo,如{{ userInfo }}
return {
userId,
userInfo,
};
},
});
```
当`userId`值改变时,getter会被重新计算。
阅读全文