Vue3 挂载全局方法

方法一:挂载在原型链上

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import Axios from 'axios';

const golBalTest = () =>{
  console.log('测试全局挂载');
  return '测试全局挂载';
}

const app = createApp(App) 

// 挂载到vue原型上(方法1)
app.config.globalProperties.$axios = Axios;
app.config.globalProperties.$golBalTest = golBalTest;
app.config.globalProperties.$Test = "我在全局";


方法二:使用 app.provide()

使用这个 API,提供一个值,可以在应用中的所有后代组件中注入使用。

类型:

interface App {
  provide<T>(key: InjectionKey<T> | symbol | string, value: T): this
}

第一个参数应当是注入的 key,第二个参数则是提供的值。返回应用实例本身。

import { createApp } from 'vue'
const app = createApp(/* ... */)
app.provide('message', 'hello')

在应用的某个组件中:

export default {
  inject: ['message'],
  created() {
    console.log(this.message) // 'hello'
  }
}


参考:

https://cn.vuejs.org/api/application.html

修改时间 2024-03-05

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
随机推荐
Node.js 模块概念
HTML input radio 单选按钮
JavaScript window 对象
Debian11 安装笔记1:编译安装Nginx、Naxsi 和 Njs
MySQL 删除逗号分隔字段中的某一个值
Node.js zlib 模块
JavaScript Proxy 代理
JavaScript 滚动浏览器窗口到指定的元素