vue全局属性及过滤器实现

126 阅读1分钟

挂载方式

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>