挂载方式
vue2:Vue.prototype.xxx = xxx,vue2将全局熟属性挂载在Vue构造函数的原型对象上 vue3:app.config.globalProperties.xxx = xxx,vue3将全局属性挂载在app实例上的config属性中的globalProperties属性上
过滤器实现
vue3取消了过滤器,我们可以手动实现过滤器,并挂载到全局属性上
定义:
const app = createApp(App)
// 定义过滤器的类型
type Filters = {
format: <T>(str: T) => string
}
// 定义声明文件
declare module '@vue/runtime-core' {
export interface ComponentCustomProperties {
$filters: Filters
}
}
// 挂载
app.config.globalProperties.$filters = {
format: <T>(str: T): string => {
return `确实${str}`
}
}
使用:
<template>
<div>{{ $filters.format('厉害') }}</div>
</template>