首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nuxt3中的所有页面/组件中使用变量(或存储)

在nuxt3中的所有页面/组件中使用变量(或存储)
EN

Stack Overflow用户
提问于 2022-11-30 11:22:55
回答 1查看 32关注 0票数 0

我用的是nuxt3,皮尼亚。我可以在特定的vue页面中使用用户is_login变量,如下所示。

代码语言:javascript
复制
import { useAuthStore } from "~/stores/myCustomAuthStore";
import { storeToRefs } from 'pinia'
const authStore = useAuthStore();
const {user, is_login} = storeToRefs(authStore)

我想要的是在另一个页面(或组件)中使用用户、is_login变量,而不编写上面的4行代码。

我认为我需要使用插件或模块或nuxtApp.provide,我应该如何做到详细?

-我试的是

我做了插件/通用的

代码语言:javascript
复制
import { useAuthStore } from "~/stores/myCustomAuthStore";
import { storeToRefs } from 'pinia'
export default defineNuxtPlugin((nuxtApp) => {
    const authStore = useAuthStore();
    const {user, is_login} = storeToRefs(authStore)
    nuxtApp.provide('user', user.value)
    nuxtApp.provide('is_login', is_login.value)
}

我把下面的代码

代码语言:javascript
复制
const is_login = useNuxtApp().$is_login
const user = useNuxtApp().$user

这不是工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-30 11:34:09

您可以为此编写一个可组合的(请参阅https://nuxt.com/docs/guide/directory-structure/composables#composables-directory):

在"composables“目录中创建composables/use-auth.ts文件

代码语言:javascript
复制
// composables/use-auth.ts

import { useAuthStore } from '~/stores/myCustomAuthStore';
import { storeToRefs } from 'pinia';

export const useAuth = () => {
  const pinia = usePinia();
  const authStore = useAuthStore(pinia);

  const { user, is_login } = storeToRefs(authStore);

  return {
    user,
    is_login,
  };
}

然后,在您的组件中,您可以像这样使用它:

代码语言:javascript
复制
<script setup>
const { user, is_login } = useAuth();
</script>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74626963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档