在Vue中定義和調(diào)用過濾器的方法
過濾器(Filters)是 vue 為開發(fā)者提供的功能,常用于文本的格式化。過濾器可以用在兩個(gè)地方:插值表達(dá)式和 v-bind 屬性綁定。過濾器應(yīng)該被添加在 JavaScript 表達(dá)式的尾部,由“管道符”進(jìn)行調(diào)用,示例代碼如下:
<l--在雙花括號中通過“管道符“調(diào)用capitalize過濾器,對message的值進(jìn)行格式化--> <p>{{ message | capitalize }}</p> <!--在v-bind 中通過“管道符”調(diào)用 formatId過濾器,對rawId的值進(jìn)行格式化--> <div v-bind:id="rawId| formatId"></div>
在創(chuàng)建 vue 實(shí)例期間,可以在 filters 節(jié)點(diǎn)中定義過濾器,示例代碼如下:
const vm = new Vue({ el: '#app', data: { message: 'hello vue. js', info: 'title info' }, filters: { // 在 filters 節(jié)點(diǎn)下定義“過濾器” capitalize(str) { //把首字母轉(zhuǎn)為大寫的過濾器 return str.charAt(0).toUpperCase() + str.slice(1) } } })
在 filters 節(jié)點(diǎn)下定義的過濾器,稱為“私有過濾器”,因?yàn)樗荒茉诋?dāng)前 vm 實(shí)例所控制的 el 區(qū)域內(nèi)使用。
如果希望在多個(gè) vue 實(shí)例之間共享過濾器,則可以按照如下的格式定義全局過濾器:
// 全局過濾器-獨(dú)立于每個(gè)vm實(shí)例之外 // Vue.filter()方法接收兩個(gè)參數(shù): // 第 1 個(gè)參數(shù),是全局過濾器的“名字“ // 第 2 個(gè)參數(shù),是全局過濾器的“處理函數(shù)“ Vue.filter('capitalize', (str) => { return str.charAt(0).toUpperCase() + str.slice(1) })
過濾器可以串聯(lián)地進(jìn)行調(diào)用,例如:
<!--把 message的值,交給filterA 進(jìn)行處理--> <!--把filterA處理的結(jié)果,再交給filterB進(jìn)行處理--> <!--最終把filterB處理的結(jié)果,作為最終的值渲染到頁面上--> {{ message | filterA | filterB }}
連續(xù)調(diào)用多個(gè)過濾器的示例代碼如下:
<!--串聯(lián)調(diào)用多個(gè)過濾器--> <p>{{text | capitalize | maxLength)}</p> //全局過濾器-首字母大寫 Vue.filter('capitalize', (str) => { return str.charAt(0).tolpperCase() + str.slice(1) + '--' }) //全局過濾器 - 控制文本的最大長度 Vue.filter('maxLength', (str) => { if (str.length <= 10) return str return str.slice(0, 11) +'…' })
過濾器的本質(zhì)是 JavaScript 函數(shù),因此可以接收參數(shù),格式如下:
<!-- arg1和 arg2 是傳遞給 filterA 的參數(shù)--> <p>{{ message | filterA(arg1, arg2) }}</p> //過濾器處理函數(shù)的形參列表中: // 第一個(gè)參數(shù):永遠(yuǎn)都是”管道符“前面待處理的值 // 從第二個(gè)參數(shù)開始,才是調(diào)用過濾器時(shí)傳遞過來的arg1和arg2參數(shù) Vue.filter('filterA',(msg, arg1, arg2) =>{ //過濾器的代碼邏輯... })
過濾器傳參,示例代碼如下:
<!--調(diào)用 maxlength 過濾器時(shí)傳參--> <p>{{text | capitalize | maxLength(5)}}</p> //全局過濾器 - 首字母大寫 Vue.filter('capitalize',(str) => { return str.charAt(0).toUpperCase() + str.slice(1) + '~~' }) //全局過濾器-控制文本的最大長度 Vue.filter('maxLength', (str, len = 10) => { if (str.length A len) return str return str.slice(0, len) +'… })
過濾器的兼容性
過濾器僅在 vue 2.x 和 1.x 中受支持,在 vue 3.x 的版本中剔除了過濾器相關(guān)的功能。
在企業(yè)級項(xiàng)目開發(fā)中:
? 如果使用的是 2.x 版本的 vue,則依然可以使用過濾器相關(guān)的功能
? 如果項(xiàng)目已經(jīng)升級到了 3.x 版本的 vue,官方建議使用計(jì)算屬性或方法代替被剔除的過濾器功能
具體的遷移指南,請參考 vue 3.x 的官方文檔給出的說明:
https://v3.vuejs.org/guide/migration/filters.html#migration-strategy
到此這篇關(guān)于如何在Vue中定義和調(diào)用過濾器的文章就介紹到這了,更多相關(guān)vue調(diào)用過濾器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
crypto-js對稱加密解密的使用方式詳解(vue與java端)
這篇文章主要介紹了如何在Vue前端和Java后端使用crypto-js庫進(jìn)行AES加密和解密,前端通過創(chuàng)建AES.js文件來實(shí)現(xiàn)加密解密功能,并在Vue文件或JavaScript中使用,后端則可以直接使用Java代碼進(jìn)行AES加密和解密操作,需要的朋友可以參考下2025-01-01使用Vue與Firebase構(gòu)建實(shí)時(shí)聊天應(yīng)用的示例代碼
隨著互聯(lián)網(wǎng)通訊技術(shù)的不斷進(jìn)步,實(shí)時(shí)聊天應(yīng)用現(xiàn)在已成為我們?nèi)粘I钪胁豢苫蛉钡囊徊糠?無論是社交媒體平臺、工作溝通工具還是客戶支持系統(tǒng),實(shí)時(shí)聊天都在不斷被需求,今天,我們將介紹如何使用Vue.js與Firebase來構(gòu)建一個(gè)簡單而強(qiáng)大的實(shí)時(shí)聊天應(yīng)用,需要的朋友可以參考下2024-11-11vue-cli如何快速構(gòu)建vue項(xiàng)目
本篇文章主要介紹了vue-cli如何快速構(gòu)建vue項(xiàng)目,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04vue中html2canvas給指定區(qū)域添加滿屏水印
本文主要介紹了vue中html2canvas給指定區(qū)域添加滿屏水印,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11element中el-table局部刷新的實(shí)現(xiàn)示例
本文主要介紹了element中el-table局部刷新的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04vue 音樂App QQ音樂搜索列表最新接口跨域設(shè)置方法
這篇文章主要介紹了vue 音樂App QQ音樂搜索列表最新接口跨域設(shè)置方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09vue項(xiàng)目中向數(shù)組添加元素的3種方式
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中向數(shù)組添加元素的3種方式,在Vue中添加元素到數(shù)組非常簡單,文中通過代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-10-10vue移動(dòng)端彈起蒙層滑動(dòng)禁止底部滑動(dòng)操作
這篇文章主要介紹了vue移動(dòng)端彈起蒙層滑動(dòng)禁止底部滑動(dòng)操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07