搜索

首页  >  问答  >  正文

Vue 组件可以访问 App.vue 中的变量吗?

我在 Vue.js 中有一个应用程序,其中有一个像这样的 App.vue:

<template>
  <div id="app">
    <router-view/>
  </div>
</template>

<script>
export default {
  name: 'App',

 data() {
    return {
      user: null,
    }
  },

  methods: {
       getUser() {
        axios 
        .get(`auth/user/`)
        .then(response => {
          this.user=response.data.pk
        })
      }
  },

  beforeMount() {
    this.getUser();
  },
}
</script>

我可以以某种方式从其他组件访问用户变量吗?我应该如何导出和导入它才能成功?

P粉491421413P粉491421413368 天前408

全部回复(2)我来回复

  • P粉549412038

    P粉5494120382024-01-07 00:36:37

    1. $root.someVariable

    在 Vue 2 中工作,未在 3 中测试。

    回复
    0
  • P粉488464731

    P粉4884647312024-01-07 00:23:39

    你可以:

    1. 将其作为 prop 传递
      • 注意:要从子组件更改它,您应该发出一个事件告诉 root 更新它。不要尝试直接在子代中对其进行突变。
    2. 使用提供/注入
    3. 用户移至共享状态解决方案,例如VuexPinia

    回复
    0
  • 取消回复