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è)單純的少年,單純到自己很可愛,我也會(huì)喜歡你',
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}-$isaa4ao`;
if(param.toLowerCase() === 'yyyy-mm-dd'){
return `${y}-${m}-$k6o4yu2`;
}else{
var hh = dt.getHours();
var mm = (dt.getMinutes()).toString().padStart(2,'0');
var ss = dt.getSeconds();
return `${y}-${m}-$qu44qq4 ${hh}:${mm}:${ss}`
}
}
},
methods: { }
})
</script>
</html>
[點(diǎn)擊并拖拽以移動(dòng)]


效果圖


若有不足請(qǐng)多多指教!希望給您帶來幫助!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
Vue項(xiàng)目通過vue-i18n實(shí)現(xiàn)國際化方案(推薦)
這篇文章主要介紹了Vue項(xiàng)目通過vue-i18n實(shí)現(xiàn)國際化方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12
vue組件文檔(.md)中如何自動(dòng)導(dǎo)入示例(.vue)詳解
這篇文章主要給大家介紹了關(guān)于vue組件文檔(.md)中如何自動(dòng)導(dǎo)入示例(.vue)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-01-01
詳解vue-cli+element-ui樹形表格(多級(jí)表格折騰小計(jì))
這篇文章主要介紹了vue-cli + element-ui 樹形表格(多級(jí)表格折騰小計(jì)),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04
vue項(xiàng)目打包并部署到Linux服務(wù)器的詳細(xì)過程
我們?cè)跁?huì)開發(fā)項(xiàng)目的同時(shí),也應(yīng)該了解一下項(xiàng)目是如何部署到服務(wù)器的,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目打包并部署到Linux服務(wù)器的相關(guān)資料,需要的朋友可以參考下2023-01-01
vue2左側(cè)菜單欄收縮展開功能實(shí)現(xiàn)
vue2左側(cè)菜單欄收縮展開目前是非常常見的,我們?cè)谌粘i_發(fā)過程中經(jīng)常會(huì)碰到,這篇文章給大家介紹vue2左側(cè)菜單欄收縮展開功能,感興趣的朋友跟隨小編一起看看吧2024-04-04
vue3使用vuedraggable和grid實(shí)現(xiàn)自定義拖拽布局方式
這篇文章主要介紹了vue3使用vuedraggable和grid實(shí)現(xiàn)自定義拖拽布局方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
vue+element實(shí)現(xiàn)頁面頂部tag思路詳解
這篇文章主要介紹了vue+element實(shí)現(xiàn)頁面頂部tag效果,頁面顯示由數(shù)組循環(huán)得出,數(shù)組可存儲(chǔ)在store里,tags數(shù)組里面已經(jīng)有值,由于默認(rèn)是白色,所以頁面上看不出,接下來就是給選中的標(biāo)簽高亮,需要的朋友可以參考下2021-12-12
vue中實(shí)現(xiàn)代碼高亮與語法著色的方法介紹
在Vue的開發(fā)過程中,我們經(jīng)常需要展示代碼片段或者進(jìn)行代碼高亮與語法著色,Vue提供了多種方式來實(shí)現(xiàn)代碼高亮與語法著色,本文將為你詳細(xì)介紹這些方法,需要的朋友可以參考下2023-06-06

