在 Vue3 中,可以使用 provide 和 inject 来实现在本页面的全局变量。

首先,在页面的根组件中,使用 provide 方法定义一个名为 globalVar 的全局变量,并初始化为 null:

import { createApp } from 'vue';
import App from './App.vue';

const app = createApp(App);

app.provide('globalVar', null);

app.mount('#app');

然后,在接口中,可以通过 inject 方法获取到 globalVar,并赋值:

import { inject } from 'vue';

export default {
  data() {
    return {
      data: null,
    };
  },
  async mounted() {
    const globalVar = inject('globalVar');
    globalVar = 'hello world';

    // 调用接口获取数据
    const res = await fetch('https://example.com/api');
    const data = await res.json();

    this.data = data;
  },
};

这样,全局变量 globalVar 就在本页面中定义并赋值了。注意,在接口中使用 inject 获取到的 globalVar 是一个响应式的对象,所以可以直接修改它的值。

vue3定义一个在本页面的全局变量 并在接口中给这个变量赋值

原文地址: https://www.cveoy.top/t/topic/bsKK 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录