vue3 中勾销了过滤器 filter,如果组件中独自应用能够用 computed、watch 来替换。然而想全局创立一个之前的 vue2 中的 filter,咱们就要应用在 vue 全局中挂在属性或者办法。
1、关上 main.js 文件,写入本人的全局属性或者办法。
import {createApp} from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/lib/theme-chalk/index.css'
import './assets/scss/global.scss'
import App from '@/App.vue'
import router from '@/router'
import store from '@/store'
// 开始
const app = createApp(App)
// 创立办法
const dateTimeSub = (value) => {if (value) {return value.split(' ')[0]
}
}
// 挂在全局办法
app.config.globalProperties.$filters = dateTimeSub
// 主见这里改为 app.use
app.use(store).use(router).use(ElementPlus).mount('#app')
2、应用
// 引入 getCurrentInstance
import {reactive, ref, getCurrentInstance} from 'vue'
setup (props, {emit}) {
// 获取全局属性和办法
const {ctx, proxy} = getCurrentInstance()
// ctx 和 proxy 都能够拜访到定义的全局办法,然而 ctx 只能在本地应用,线上环境应用 proxy
...
return {proxy}
<template>
<div>{{proxy.$filters('2020-06-22 10:55')}}<div>
</template>