1.相对简单直接挂代码 + 注释
import { createApp } from 'vue'
import App from './App.vue'
const app = createApp(App)
app.config.globalProperties.$globalData = '全局输出'
app.config.globalProperties.$filters = {
format<T>(val:T) {
return '全局对象方法' + val
}
}
type Filter = {
format<T>(str: T): string
}
declare module 'vue' {
export interface ComponentCustomProperties {
$filters: Filter,
$globalData: string
}
}
2.template 中直接使用
// template 中使用
<!-- 全局绑定属性 -->
<h1>{{ $globalData }}</h1>
<!-- 全局$filters上绑定方法 -->
<h1>{{ $filters.format('Lyon') }}</h1>
script 需要先获取组件实例对象中调用
import { getCurrentInstance } from 'vue';
const app = getCurrentInstance()
console.log('全局方法')
const cf = app?.proxy?.$filters.format('js 触发')
console.log(app?.proxy?.$globalData)