Vue3的this

209 阅读1分钟

utils/index.js

const printInfo = (msg) => {
   console.log(msg);
}

export default {
   printInfo
}

main.js

import utils from './utils'
// 全局属性配置
app.config.globalProperties.$utils = utils

vue组件

import { getCurrentInstance } from 'vue'

// 获取Component实例
const that = getCurrentInstance()?.proxy
that?.$utils.printInfo("这是一条消息")

ts声明文件 {文件名称}.d.ts声明文件

import { ComponentCustomProperties } from "@vue/runtime-core";

declare module '@vue/runtime-core' {
    interface ComponentCustomProperties {
        $utils: object; // 这里填类型
    }
}
// 必须导出,才能在其他文件中使用
export default ComponentCustomProperties;

备注:文件名称随意,可以放在src的任意目录下,ts文件已经自动导入了,但因为要编译打包,最好不要和同级目录中已存在的文件名称相同,像我就是改成:extend.d.ts,放在src目录下的,其他全局变量挂载也可以往上追加。