日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

如何使用vue過濾器filter

瀏覽:30日期:2022-09-30 08:08:00
概述

在 vue2.0 之前,是有內置過濾器的,在2.0中已經沒有內置的過濾器了,但我們可以自定義過濾器。

關于 vue 過濾器,在官方文檔中是這樣說明的:

Vue.js 允許你自定義過濾器,可被用于一些常見的文本格式化。過濾器可以用在兩個地方:雙花括號插值和 v-bind 表達式 (后者從 2.1.0+ 開始支持)。過濾器應該被添加在 JavaScript 表達式的尾部,由“管道”符號指示。

即過濾器是用來格式化數據的一個函數。過濾器不會修改原始數據,它的作用是過濾數據,就是對數據進行加工處理并返回處理后的數據,比如做一些數據格式上的修改,狀態轉換等。

過濾器分為兩種

組件內的過濾器(組件內有效) 全局過濾器(所有組件共享)定義過濾器

第一個參數是過濾器的名字

第二個參數是過濾器的功能函數 (若不定義vue就不知道這個字符串是什么,有什么作用)。

過濾器的功能函數

聲明 function(data,argv1,argv2...){} 第一個參數是傳入的要過濾的數據,即調用時管道符左邊的內容。 第二個參數開始往后就是調用過濾器的時候傳入的參數。過濾器的使用

先注冊,后使用

組件內 filters:{ 過濾器名: fn } fn 內通過 return 返回最終的數據

全局 Vue.filter(’過濾器名’,fn) fn 內通過 return 返回最終的數據

使用 {{ 數據 | 過濾器名 }}

// 使用過濾器時需要添加管道符號( | )作為分隔,管道符 | 右邊是過濾器名稱,即文本的功能函數​<!-- 在雙花括號中 -->{{ message | 過濾器名稱 }}​<!-- 在 `v-bind` 中 --><div v-bind:id='id | 過濾器名稱'></div>自定義全局過濾器

Vue.filter(’過濾器名稱’, function(val) { // val表示要被處理的數據 // 過濾器業務邏輯,要有返回值})​<div>{{ msg | 過濾器名稱 }}</div><div v-bind='msg | 過濾器名稱'></div>局部過濾器

data () { return {msg: ’hello world’ }},//定義私用局部過濾器。只能在當前 vue 對象中使用filters: { dataFormat: (msg, a) => { // msg表示要過濾的數據,a表示傳入的參數return msg + a; }}​<p>{{ msg | dataFormat(’!’)}}</p> // 結果: hello world!注意事項

1.全局注冊時是 filter 沒有 s , 而組件過濾器是 filters,是有 s 的,雖然寫的時候沒有 s 也不報錯,但是過濾器是沒有效果的。

2.當全局過濾器和局部過濾器名字重復的時候,會以就近原則進行調用,即:局部過濾器優先于全局過濾器被調用

3.一個表達式可以使用多個過濾器,其執行順序從左往右,前一個過濾器的結果作為后一個過濾器的被處理數據,所以要注意使用順序

熟悉 vue 的童鞋會知道,過濾器有時同methods、computed、watch一樣可以達到處理數據的目的,但又不能替代它們,因為它不能改變原始值。如果一個過濾器的內部特別復雜,可以考慮把它寫成一個計算屬性,因為計算屬性本身帶有緩存,可復用性強,而過濾器一般用來做一些簡單的操作。

在實際開發中,全局的過濾器要比局部過濾器使用的更廣泛一些,說白了我們為什么要使用過濾器,其實就跟使用函數是一樣,把一些方法封裝,供其它組件使用,這樣調用起來更方便也更快捷。

大家知道全局過濾器是在 main.js 中定義的,但萬一項目過大,有多個過濾器,那 main.js 就一堆代碼,為了項目模塊化,最好是有專門的目錄來統一存放這些過濾器,然后把處理函數給抽離出去,放在一個.js文件中,下邊通過示例代碼展示。

示例一(局部過濾器)

格式化時間或日期,補全指定位數,不足個位數補0

// filter/index.js文件export default { dateFormat: value => {const dt = new Date(value * 1000) const y = dt.getFullYear()const m = (dt.getMonth() + 1 + ’’).padStart(2, ’0’) // .padStart(指定位數,'要補全的符號或值')const d = (dt.getDay() + ’’).padStart(2, ’0’)const hh = (dt.getHours() + ’’).padStart(2, ’0’)const mm = (dt.getMinutes() + ’’).padStart(2, ’0’)const ss = (dt.getSeconds() + ’’).padStart(2, ’0’)return `${y}-${m}-$rpejend ${hh}:${mm}:${ss}` }}​// 在 .vue 文件中使用局部過濾器<script> import filters from ’../filter’​ export default {... ... filters: { ...filters },data() { return {}} }</script>​<div> 日期:{{ date | dateFormat }} </div>示例二(全局過濾器)

通用字典項的回顯:比如性別男女或通用選擇是否,后端傳給我們的數據是0、1,我們需要在頁面上顯示男女或是否

// constants/dictionary.js 文件​export const GENDER_MENU = [ { code: 0, label: ’男’}, { code: 1, label: ’女’}];​export const COMMON_MENU = [ { code: 0, label: ’否’}, { code: 1, label: ’是’}];​export default { GENDER_MENU, COMMON_MENU}

filter / dict.js 文件

// filter/dict.js 文件​import Dict from ’../constants/dictionary’​export const genderMenu = { func: value => {const target = Dict.GENDER_MENU.filter(item => { return item.code = value;})return target.length ? target[0].label : value; }}​export const commonMenu = { func: value => {const target = Dict.COMMON_MENU.filter(item => { return item.code = value;})return target.length ? target[0].label : value; }}

filter / index.js 文件

// filter/index.js 文件​import * as filters from ’./dict’ // 導入過濾函數​const Install = Vue => { // 導入的 filters 是一個對象,使用Object.keys()方法,得到一個由key組成的數組,遍歷數據,讓key作為全局過濾器的名字,后邊的是key對應的處理函數,這樣在任何一個組件中都可以使用全局過濾器了 Object.keys(filters).forEach(key => {Vue.filter(key, filters[key].func) }) /* for(const _filter in filters) {Vue.filter(`${_filter}`, filters[_filter].func) } */}​export default Install

main.js 文件

// main.js 文件​... ...import filters from ’./../filter/index’Vue.use(filters)... ...

在.vue 文件中使用全局過濾器

// .vue 文件中使用全局過濾器​<p>性別:{{ gender | genderMenu }}</p>

以上就是如何使用vue過濾器filter的詳細內容,更多關于vue過濾器filter的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩精品一区二区三区免费观看| 麻豆国产精品视频| 免费视频久久| 日韩电影二区| 国产一区亚洲| 国产精品1区在线| 国产亚洲亚洲| 亚洲欧美高清| 亚洲精品无吗| 日韩区欧美区| 国产精品玖玖玖在线资源| 偷拍亚洲精品| 日本aⅴ免费视频一区二区三区| 日韩区一区二| 精品高清久久| 麻豆网站免费在线观看| 今天的高清视频免费播放成人| 天堂av在线一区| 精品一区二区三区在线观看视频| 99国产精品99久久久久久粉嫩| 红桃视频欧美| 美国三级日本三级久久99| 亚洲精品一二| 国产精品欧美大片| 日本精品影院| 日韩av影院| 日本午夜大片a在线观看| 91精品国产乱码久久久久久久| 久久精品高清| 日韩和欧美的一区| 国产不卡精品在线| 蜜桃av一区二区在线观看| 奇米亚洲欧美| 国产综合精品| 精品女同一区二区三区在线观看| 在线国产一区二区| 国产亚洲高清一区| 成人久久久久| 日韩欧美高清一区二区三区| 亚洲啊v在线| 日韩福利在线观看| 尤物在线精品| 欧美日中文字幕| 香蕉精品视频在线观看| 91欧美日韩在线| 日韩亚洲精品在线| 久久久久伊人| 国产精品毛片视频| 狠狠久久婷婷| 中文日韩在线| 老牛影视一区二区三区| 性色av一区二区怡红| 欧美国产不卡| 国产美女高潮在线| 国产伦理一区| 精品一区二区三区视频在线播放| 国产精品巨作av| 国产精品1区| 一区二区精品伦理...| 五月激情久久| 亚洲永久字幕| 五月国产精品| 国产精品网址| 成人精品高清在线视频| 久久超级碰碰| 日韩欧美中文在线观看| 91九色综合| 精品视频久久| 日韩欧美字幕| 日韩国产一区二区| 99日韩精品| 日韩av一区二区三区四区| 欧美天堂一区二区| 97精品国产| 久久国产精品99国产| 日本va欧美va精品发布| 日韩中文在线电影| 一区二区日韩免费看| 国产成人精品999在线观看| 亚洲国产成人精品女人| 日本特黄久久久高潮| 99久久精品费精品国产| 欧美/亚洲一区| 日本午夜精品一区二区三区电影 | 三级一区在线视频先锋| 亚洲精品欧美| 国产成人免费| 午夜在线观看免费一区| 国产精品黄色| 亚洲a在线视频| 亚洲精品综合| 国产一区二区三区视频在线| 偷拍欧美精品| 91精品国产自产在线丝袜啪| 日本欧美韩国一区三区| 日韩一区亚洲二区| 91欧美极品| 99在线观看免费视频精品观看| 91欧美日韩在线| 在线视频观看日韩| 国产精品久久久久久模特| 午夜国产精品视频免费体验区| 欧美亚洲网站| 亚洲主播在线| 日韩欧美国产精品综合嫩v| 啪啪亚洲精品| 国产模特精品视频久久久久| 麻豆精品蜜桃视频网站| 亚洲97av| 久久精品免费看| 色8久久久久| 精品一区三区| 在线亚洲人成| 国产在线日韩精品| 国产一精品一av一免费爽爽| 男人操女人的视频在线观看欧美| 日韩大片在线| 91中文字幕精品永久在线| 老司机精品视频在线播放| 国产精品xxx| 国产精品videossex久久发布| 免播放器亚洲一区| 亚洲女同中文字幕| 欧美日韩在线播放视频| 免费一区二区三区在线视频| 欧美日韩91| 国产精品亚洲产品| 国产精品tv| 91综合网人人| 日韩中文影院| 国产高清一区二区| 樱桃成人精品视频在线播放| 国产91一区| 极品日韩av| 久久亚洲一区| 午夜久久av| 国产欧美日韩亚洲一区二区三区| 日韩精品中文字幕一区二区| 亚洲a成人v| 欧美色综合网| 久久精品国产网站| 精品久久91| 欧美一区二区三区高清视频| 欧美粗暴jizz性欧美20| 性欧美长视频| 国产乱码精品| 色偷偷偷在线视频播放| 午夜一区在线| 免费日韩成人| 欧洲激情综合| 婷婷精品在线| 麻豆久久一区二区| 香蕉人人精品| 国产私拍福利精品视频二区| 你懂的亚洲视频| 美女毛片一区二区三区四区| 日韩中文字幕一区二区高清99| 麻豆一区在线| 亚洲影视一区二区三区| 岛国精品一区| 国产毛片久久| 国产精品xx| 中文字幕免费一区二区| 成人久久久久| 国产精品成人国产| 国产精品普通话对白| 国产精品15p| 亚洲欧美日本日韩| 亚洲黄色网址| 一二三区精品| 免费av一区二区三区四区| 国产精品调教| 一区福利视频| 黄在线观看免费网站ktv| 日韩国产一区二| 亚洲经典在线| 91日韩免费| 精品国产精品国产偷麻豆| 亚洲欧洲美洲国产香蕉| 国产国产精品| 国产精品成人a在线观看| 欧美日韩va| 最新国产精品久久久| 91高清一区| av资源新版天堂在线| 国产欧美日韩一区二区三区四区 | 在线国产一区二区| 精品国产精品久久一区免费式| 免费在线观看一区二区三区| 色婷婷精品视频| 国产一区二区三区探花| 国产精品久久久久久久久久久久久久久 | 久久精品国产久精国产爱| 日韩一区二区三免费高清在线观看| 久久久影院免费| 日韩电影免费网站| a国产在线视频| 韩国精品主播一区二区在线观看| 久久免费精品| 国产成人精品免费视|