Vue3+Pinia 在子组件中无法获取最新状态属性

问题:Vue3+Pinia 父组件中设置状态属性,在子组件中无法获取最新状态属性

解决:👇

const loginStore = useLoginStore()
const userInfo = computed(() => {
  return loginStore.userInfo
})

Vue3 ,你可以使用 Pinia 来管理应用程序的状态。要设置前端权限,你可以使用以下步骤: 1. 定义你的权限列表 在你的应用程序,你需要定义一份权限列表,它应该包含你的应用程序所有的权限。 例如: ```javascript const permissions = { viewPage1: '可以查看页面1', viewPage2: '可以查看页面2', editPage1: '可以编辑页面1', editPage2: '可以编辑页面2', }; ``` 2. 定义你的 store 使用 Pinia,你可以定义一个 store 来管理你的应用程序的状态。 例如: ```javascript import { defineStore } from 'pinia'; export const store = defineStore({ id: 'app', state: () => ({ user: null, permissions: [], }), getters: { hasPermission: (state) => (permission) => { return state.permissions.includes(permission); }, }, actions: { login(user) { this.user = user; this.permissions = user.permissions; }, logout() { this.user = null; this.permissions = []; }, }, }); ``` 在这个 store ,我们定义了两个状态:`user` 和 `permissions`。当用户登录时,我们会将用户的权限设置到 `permissions` 状态。 我们还定义了一个 `hasPermission` 的 getter,它接收一个权限名称作为参数,并返回一个布尔值,表明当前用户是否有该权限。 3. 在组件使用 store 在你的组件,你可以使用 `computed` 属性获取当前用户是否有权限。 例如: ```javascript <template> <div v-if="hasViewPage1Permission">可以查看页面1</div> <div v-if="hasEditPage1Permission">可以编辑页面1</div> </template> <script> import { computed } from 'vue'; import { useStore } from 'pinia'; export default { setup() { const store = useStore(); const hasViewPage1Permission = computed(() => store.getters.hasPermission('viewPage1') ); const hasEditPage1Permission = computed(() => store.getters.hasPermission('editPage1') ); return { hasViewPage1Permission, hasEditPage1Permission, }; }, }; </script> ``` 在这个组件,我们使用 `computed` 属性获取当前用户是否有查看页面1和编辑页面1的权限。我们使用 `useStore` 方法来获取我们之前定义的 store。 在这个组件,我们通过使用 `v-if` 指令来判断当前用户是否有相应的权限,如果有,就显示对应的内容。 这就是如何在 Vue3 使用 Pinia 设置前端权限的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值