vue中過濾器filter的講解

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<!-- {{}}中的|表示過濾器管道符,過濾器后面的為過濾函數(shù) -->
<p>{{msg | msgFormat('瘋狂+1')}}</p>
<!-- 多個(gè)過濾函數(shù)進(jìn)行調(diào)用 -->
<p>{{msg | msgFormat('瘋狂+1') | test}}</p>
<h2>{{time | dateFormat}}</h2>
</div>
</body>
<script src="./js/vue.js"></script>
<script>
//過濾器的定義語法
//Vue.filter('過濾器的名稱',function () { })
//過濾器中的function,第一個(gè)參數(shù)data,已經(jīng)被規(guī)定死,永遠(yuǎn)都是過濾器管道符前面?zhèn)鬟f過來的數(shù)據(jù)
// 從第二個(gè)參數(shù)開始就是傳值
// Vue.filter('過濾器名稱',function(data){
// return data+123
// });
//定義一個(gè)Vue全局的過濾器,名字:msgFormat
Vue.filter('msgFormat',function(msg,param) {
//字符出中的replace方法,第一個(gè)參數(shù),出了寫一個(gè)字符串之外,還可以定義一個(gè)正則
// return msg.replace('單純','邪惡');
// return msg.replace(/單純/g,'邪惡')
return msg.replace(/單純/g,param)
})
Vue.filter('test',function(msg) {
return msg+'love'
})
//如何定義一個(gè)私有過濾(局部)
var vm = new Vue({
el: '#app',
data: {
msg: '我也是一個(gè)單純的少年,單純到自己很可愛,我也會喜歡你',
time: new Date(),
},
//定義私有過濾器,過濾器有兩個(gè)條件[過濾器名稱 和 處理函數(shù) ]
filters: {
/*
過濾器調(diào)用的時(shí)候,采用的是就近原則,
如果私有過濾器和全局過濾器名稱一致了,這時(shí)候優(yōu)先調(diào)用私有過濾器
*/
//param = '';es6的初始化值
dateFormat: function(time,param = ''){
var dt = new Date(time);
// yyyy-mm-dd
var y = dt.getFullYear();
// var m = dt.getMonth()+1;
var m = (dt.getMonth()+1).toString().padStart(2,'0');
var d = dt.getDate();
// return y+'-'+m+'-'+d;
//模板字符串
// return `${y}-${m}-$ublnpf9mb`;
if(param.toLowerCase() === 'yyyy-mm-dd'){
return `${y}-${m}-$ublnpf9mb`;
}else{
var hh = dt.getHours();
var mm = (dt.getMinutes()).toString().padStart(2,'0');
var ss = dt.getSeconds();
return `${y}-${m}-$ublnpf9mb ${hh}:${mm}:${ss}`
}
}
},
methods: { }
})
</script>
</html>
[點(diǎn)擊并拖拽以移動]


效果圖


若有不足請多多指教!希望給您帶來幫助!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
vue 項(xiàng)目接口管理的實(shí)現(xiàn)
在vue開發(fā)中,會涉及到很多接口的處理,當(dāng)項(xiàng)目足夠大時(shí),就需要定義規(guī)范統(tǒng)一的接口,本文就來介紹一下vue 項(xiàng)目接口管理,具有一定的參考價(jià)值,感興趣的小伙伴可以一起來了解一下2019-01-01
vue關(guān)于eslint空格縮進(jìn)等的報(bào)錯問題及解決
這篇文章主要介紹了vue關(guān)于eslint空格縮進(jìn)等的報(bào)錯問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-05-05
vue中設(shè)置echarts寬度自適應(yīng)的代碼步驟
這篇文章主要介紹了vue中設(shè)置echarts寬度自適應(yīng)的問題及解決方案,常常需要做到echarts圖表的自適應(yīng),一般是根據(jù)頁面的寬度做對應(yīng)的適應(yīng),本文記錄一下設(shè)置echarts圖表的自適應(yīng)的步驟,需要的朋友可以參考下2022-09-09
vue組件從開發(fā)到發(fā)布的實(shí)現(xiàn)步驟
這篇文章主要介紹了vue組件從開發(fā)到發(fā)布的實(shí)現(xiàn)步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11
Vue計(jì)算屬性與監(jiān)視(偵聽)屬性的使用深度學(xué)習(xí)
這篇文章主要介紹了Vue計(jì)算屬性與監(jiān)視(偵聽)屬性的使用,計(jì)算屬性指的是通過一系列運(yùn)算之后,最終得到一個(gè)值,watch監(jiān)視(偵聽)器允許開發(fā)者監(jiān)視數(shù)據(jù)的變化,從而針對數(shù)據(jù)的變化做特定的操作,本文就這兩種屬性給大家詳細(xì)講解,感興趣的朋友一起學(xué)習(xí)吧2022-11-11
vue項(xiàng)目打包之后生成一個(gè)可修改IP地址的文件(具體操作)
這篇文章主要介紹了vue項(xiàng)目打包之后生成一個(gè)可修改IP地址的文件(具體操作),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03

