vue中過濾器的用法
更新時間:2022年03月14日 09:48:45 作者:.NET開發(fā)菜鳥
這篇文章介紹了vue中過濾器的用法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
一、過濾器
過濾器是vue中的一個特性,作用是用于對文本進行格式化的作用。
注意:在vue 1.0中有內(nèi)置的過濾器,在2.0中去掉了內(nèi)置過濾器,只有自定義過濾器
二、使用位置
過濾器只能應(yīng)用在兩個地方:雙花括號插值和v-bind表達式(后者從 2.1.0+ 開始支持)。例如:
<!--在雙花括號中使用 格式:{{值 | 過濾器的名稱}}-->
<div>{{3 | addZero}}</div>
<!--在v-bind中使用 格式:v-bind:id="值 | 過濾器的名稱"-->
<div v-bind:id="1 | addZero">11</div>三、分類
過濾器分為以下兩種類型:
1、全局過濾器
示例代碼如下:
<!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>過濾器</title>
<!--引入vue.js-->
<script src="node_modules/vue/dist/vue.js" ></script>
<script>
window.onload=function(){
// 定義全局過濾器
Vue.filter("addZero",function(value){
// 如果value的值小于10則在前面添加0然后返回,否則直接返回value值
return value<10?"0"+value:value;
});
// 構(gòu)建vue實例
new Vue({
el:"#my",
data:{
},
// 方法
methods:{
}
})
}
</script>
</head>
<body>
<div id="my">
<!--在雙花括號中使用全局過濾器 格式:{{值 | 過濾器的名稱}}-->
<div>{{3 | addZero}}</div>
<div>{{15 | addZero}}</div>
<!--在v-bind中使用全局過濾器 格式:v-bind:id="值 | 過濾器的名稱"-->
<div v-bind:id="1 | addZero">11</div>
<div v-bind:id="12 | addZero">15</div>
</div>
</body>
</html>效果:

2、本地過濾器
示例代碼如下:
<!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>過濾器</title>
<!--引入vue.js-->
<script src="node_modules/vue/dist/vue.js" ></script>
<script>
window.onload=function(){
// 定義全局過濾器
Vue.filter("addZero",function(value){
// 如果value的值小于10則在前面添加0然后返回,否則直接返回value值
return value<10?"0"+value:value;
});
// 構(gòu)建vue實例
new Vue({
el:"#my",
data:{
},
// 方法
methods:{
},
// 定義本地過濾器
filters:{
roundNum:function(value){
// 四舍五入 小數(shù)點后保留兩位
return value.toFixed(2);
},
roundNumWithPara:function(value,digit){
// 根據(jù)digit返回相應(yīng)位數(shù)的小數(shù)
return value.toFixed(value,digit);
}
}
})
}
</script>
</head>
<body>
<div id="my">
<!--在雙花括號中使用全局過濾器 格式:{{值 | 過濾器的名稱}}-->
<div>{{3 | addZero}}</div>
<div>{{15 | addZero}}</div>
<!--在v-bind中使用全局過濾器 格式:v-bind:id="值 | 過濾器的名稱"-->
<div v-bind:id="1 | addZero">11</div>
<div v-bind:id="12 | addZero">15</div>
<!--使用本地過濾器-->
<div>原始值:3.1415926,過濾后的值:{{3.1415926 | roundNum}}</div>
<!--保留小數(shù)點后3位-->
<div>原始值:3.1415926,過濾后的值:{{3.1415926 | roundNumWithPara(3)}}</div>
</div>
</body>
</html>效果:

四、過濾器應(yīng)用實例
1、使用過濾器實現(xiàn)省略號
代碼示例如下:
<!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>使用過濾器實現(xiàn)省略號</title>
<!--引入vue.js-->
<script src="node_modules/vue/dist/vue.js" ></script>
<script>
window.onload=function(){
// 構(gòu)建vue實例
new Vue({
el:"#my",
data:{
msg:'hello world',
},
// 方法
methods:{
},
// 定義本地過濾器
filters:{
// 顯示省略號
toShowEllipsis:function(value,len){
if(value ==='' || value=== undefined || value===null) return;
if(value.length >= len){
var str = value.substr(0,len);
return str + '...';
}else {
return value;
}
}
}
})
}
</script>
</head>
<body>
<div id="my">
<!--添加省略號 12345...-->
<input type="text" v-model="msg" >
{{msg | toShowEllipsis(6)}}
</div>
</body>
</html>效果:

2、使用過濾器處理時間戳
代碼示例如下:
<!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>使用過濾器處理時間戳</title>
<!--引入vue.js-->
<script src="node_modules/vue/dist/vue.js" ></script>
<script>
window.onload=function(){
// 構(gòu)建vue實例
new Vue({
el:"#my",
data:{
curTime:1546181790
},
// 方法
methods:{
},
// 定義本地過濾器
filters:{
// 處理時間戳 將時間戳轉(zhuǎn)換成具體時間
toTimeStamp:function(value){
//d 表示日期 t 日期和時間
var d = new Date(value*1000);
return d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds()
}
}
})
}
</script>
</head>
<body>
<div id="my">
<!--時間戳-->
<p>當前時間:{{curTime | toTimeStamp }}</p>
</div>
</body>
</html>效果:

到此這篇關(guān)于vue中過濾器用法的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue代理請求數(shù)據(jù)出現(xiàn)404問題及解決
這篇文章主要介紹了Vue代理請求數(shù)據(jù)出現(xiàn)404的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-07-07
Vue中利用better-scroll組件實現(xiàn)橫向滾動功能
橫向滾動這個功能是我們?nèi)粘i_發(fā)中經(jīng)常會遇到的一個需求,下面這篇文章主要給大家介紹了關(guān)于Vue中如何利用better-scroll組件實現(xiàn)橫向滾動的相關(guān)資料,需要的朋友可以參考下2021-06-06

