vue中過濾器的用法
一、過濾器
過濾器是vue中的一個(gè)特性,作用是用于對(duì)文本進(jìn)行格式化的作用。
注意:在vue 1.0中有內(nèi)置的過濾器,在2.0中去掉了內(nèi)置過濾器,只有自定義過濾器
二、使用位置
過濾器只能應(yīng)用在兩個(gè)地方:雙花括號(hào)插值和v-bind表達(dá)式(后者從 2.1.0+ 開始支持)。例如:
<!--在雙花括號(hào)中使用 格式:{{值 | 過濾器的名稱}}-->
<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實(shí)例
new Vue({
el:"#my",
data:{
},
// 方法
methods:{
}
})
}
</script>
</head>
<body>
<div id="my">
<!--在雙花括號(hào)中使用全局過濾器 格式:{{值 | 過濾器的名稱}}-->
<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實(shí)例
new Vue({
el:"#my",
data:{
},
// 方法
methods:{
},
// 定義本地過濾器
filters:{
roundNum:function(value){
// 四舍五入 小數(shù)點(diǎn)后保留兩位
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">
<!--在雙花括號(hào)中使用全局過濾器 格式:{{值 | 過濾器的名稱}}-->
<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ù)點(diǎn)后3位-->
<div>原始值:3.1415926,過濾后的值:{{3.1415926 | roundNumWithPara(3)}}</div>
</div>
</body>
</html>效果:

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

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

到此這篇關(guān)于vue中過濾器用法的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue3實(shí)現(xiàn)長(zhǎng)列表虛擬滾動(dòng)的示例代碼
本文主要介紹了vue3實(shí)現(xiàn)長(zhǎng)列表虛擬滾動(dòng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01
Vue代理請(qǐng)求數(shù)據(jù)出現(xiàn)404問題及解決
這篇文章主要介紹了Vue代理請(qǐng)求數(shù)據(jù)出現(xiàn)404的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Vue2?中的數(shù)據(jù)劫持簡(jiǎn)寫示例
這篇文章主要為大家介紹了Vue2?中的數(shù)據(jù)劫持簡(jiǎn)寫示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
vue動(dòng)態(tài)路由刷新失效以及404頁面處理辦法
作為一個(gè)前端新手,項(xiàng)目中遇到權(quán)限處理時(shí),通常會(huì)采用動(dòng)態(tài)添加路由的方法來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于vue動(dòng)態(tài)路由刷新失效以及404頁面處理辦法的相關(guān)資料,需要的朋友可以參考下2023-11-11
Vue中利用better-scroll組件實(shí)現(xiàn)橫向滾動(dòng)功能
橫向滾動(dòng)這個(gè)功能是我們?nèi)粘i_發(fā)中經(jīng)常會(huì)遇到的一個(gè)需求,下面這篇文章主要給大家介紹了關(guān)于Vue中如何利用better-scroll組件實(shí)現(xiàn)橫向滾動(dòng)的相關(guān)資料,需要的朋友可以參考下2021-06-06

