溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

vue.js中過(guò)濾器怎么用

發(fā)布時(shí)間:2021-08-09 14:10:49 來(lái)源:億速云 閱讀:132 作者:小新 欄目:web開發(fā)

這篇文章給大家分享的是有關(guān)vue.js中過(guò)濾器怎么用的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

前言

大家再使用vue做項(xiàng)目時(shí),查詢功能當(dāng)然必不可少,這就得使用vue強(qiáng)大的filter啦。其實(shí)vue內(nèi)置的兩個(gè)屬性filterBy和orderBy已經(jīng)能滿足部分需求了,但是她更大的的魅力在于自定義filter(之后的文章中會(huì)分享),正好我最近做的項(xiàng)目中用到了這個(gè)。先給大家看下需求吧。如下圖,這是一個(gè)通訊錄頁(yè)面,當(dāng)我們?cè)谒阉鳈谥休斎腙P(guān)鍵字時(shí)需要展示相應(yīng)的員工,同時(shí)還得去掉A、B這樣的字母索引,并且輸入的關(guān)鍵字可以是中文也可以是拼音。

vue.js中過(guò)濾器怎么用   vue.js中過(guò)濾器怎么用

該頁(yè)面引入搜索欄組件search-bar以及聯(lián)系人組件user-list,這個(gè)搜索欄組件要做的事很簡(jiǎn)單,因?yàn)槲覀儾樵兊倪@個(gè)參數(shù)是動(dòng)態(tài)的,所以只需要在vue上掛載一個(gè)v-model即可,然后它相對(duì)于這個(gè)頁(yè)面來(lái)說(shuō)是子組件,父子傳值就得用props,所以還要用props接收一下,簡(jiǎn)單寫下該組件大家看明白意思即可。

// 組件search-bar
<input type="search" v-model="okr_owner"/>

props: {
 okr_owner: {
  type: String
 }
}
// 通訊錄頁(yè)面
<template>
 <search-bar :okr_owner.sync="key_word"></search-bar>
 <user-list :filter_key="key_word"></user-list>
</template>
// 組件 user-list
<li v-for="single_user in user_list.members | filterBy filter_key in 'user.u_name' 'okr_owner' | orderBy 'okr_owner'">
 props: {
 filter_flag: {
  type: Boolean
 },
 filter_key:{
  type: String
 }
}

然后我們需要在該頁(yè)面引入這個(gè)搜索欄子組件,這里我用到了sync,因?yàn)閜rops只能父?jìng)髯?,不能子傳父,但是我們這上面引用了兩個(gè)組件,就是說(shuō)搜索欄組件中的data要拿到聯(lián)系人組件中來(lái)用,所以需要一個(gè)字段(key_word)將兩者溝通起來(lái),當(dāng)我們不寫sync時(shí)大家可以看到,父的確傳值給子組件了,但是子組件中的okr_owner變化之后并沒(méi)有傳給父組件中的key_word,這樣聯(lián)系人組件就接受不到數(shù)據(jù)源,所以我們需要給他加上sync(雙向綁定,父?jìng)髯雍妥觽鞲福?,?lián)系人組件中的filter才可以生效。

vue.js中過(guò)濾器怎么用

vue.js中過(guò)濾器怎么用

在user-list組件中我們需要遍歷聯(lián)系人列表,filter_key用來(lái)傳給該組件,和搜索欄組件一樣,也用props接收一下,并且在里面插入要過(guò)濾的內(nèi)容,

filterBy是返回過(guò)濾后的數(shù)組,orderBy是排序,前者的使用方法是filterBy 一個(gè)key(字段),in xxx 就是指搜索字段,這里需要注意的是in后面跟的必須是obj里面的key,因?yàn)槲覀兊男枨笫峭瑫r(shí)保證輸入漢字或者拼音都能查詢,所以in后面跟的是okr_owner和user.u_name(這是vue渲染的數(shù)據(jù),我們展示該聯(lián)系人用的是里面的u_name,okr_owner則為拼音),下面附上數(shù)據(jù)結(jié)構(gòu)。對(duì)于在搜索時(shí)如何去掉這些字母索引,我們只需要在通訊錄頁(yè)面中的<user-list>加入一個(gè)字段,然后使用watch來(lái)監(jiān)聽一下key_word即可。

vue.js中過(guò)濾器怎么用

感謝各位的閱讀!關(guān)于“vue.js中過(guò)濾器怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI