vue項目全局過濾器與組件內(nèi)部過濾器 filter

全局過濾器

1.mian.js同級目錄下新建文件夾filter,文件夾下新建filter.js:

? let transformMobile=val=>{? ? //手機號碼隱藏中間4位

? ???? let mobile = val + '';

? ???? if (mobile && mobile.length === 11) {

? ? ???? const reg = /^(\d{3})\d{4}(\d{4})$/

? ? ???? return mobile.replace(reg, '$1****$2')

? ???? } else {

? ? ???? return val

? ???? }

? };

? export { transformMobile}

2.mian.js引入:

? import * as custom from './filter/filter';

? Object.keys(custom).forEach(key => {

? ? Vue.filter(key, custom[key])

? });

3.組件使用:

<div?@click.stop>

? ?<a?:href="'tel:'?+?mobile"> {{mobile|?transformMobile}} </a>

</div>

data(){

??????return{

????????mobile:?'13612345678',

??????}

????}

注:以上示例顯示結(jié)果: 136****5678

組件內(nèi)部過濾器

<template>

? ? <div><span>{{type?|?transformType(typeList)}}</span></div>

??</template>

<script>

??export?default?{

????data(){

??????return{

????????type:?1,

????????typeList:[????//接口獲取的類型列表

????????????{typeName:'中國郵政',?code:0},

????????????{typeName:'順豐快遞',?code:1},

????????????{typeName:'中通快遞',?code:2}

????????],

??????}

????},

????filters:?{

????????transformType(val,typeList){

????????????if(typeList.length>0){

????????????????for(let?i=0;?i<typeList.length;?i++){

????????????????????if?(typeList[i].code?==?val)?{

????????????????????????return??typeList[i].typeName;

????????????????????}

????????????????}

????????????}else?{

????????????????return?'未知'

????????????}

????????}

????},

??}

??</script>

注:以上示例顯示結(jié)果:?順豐快遞

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請通過簡信或評論聯(lián)系作者。

友情鏈接更多精彩內(nèi)容