真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Vue中怎么創(chuàng)建并使用過濾器

Vue中怎么創(chuàng)建并使用過濾器,針對這個(gè)問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供朝陽網(wǎng)站建設(shè)、朝陽做網(wǎng)站、朝陽網(wǎng)站設(shè)計(jì)、朝陽網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、朝陽企業(yè)網(wǎng)站模板建站服務(wù),十多年朝陽做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

定義和使用過濾器

使用 Vue,我們可以通過兩種不同的方式注冊過濾器:全局和本地。前者方式可以訪問所有組件中的過濾器,而后者則只能在定義該組件的組件內(nèi)部使用過濾器。

過濾器是簡單的 JS 函數(shù),它們將要轉(zhuǎn)換的值作為第一個(gè)參數(shù),但是也可以傳入盡可能多的其他參數(shù)來返回該值的格式化版本。

全局過濾器

全局過濾器如下所示:

// 在此示例中,我們將注冊一個(gè)全局過濾器用來在價(jià)格前面添加美元符號:  // 聲明 Vue.filter('toUSD', function (value)) {   return `$${value}` } // 使用    {{ 351.99 | toUSD }} 

過濾器定義必須始終在主Vue實(shí)例之上,否則會(huì)得到一個(gè)Failed to resolve filter: toUSD錯(cuò)誤。

// DECLARATION Vue.filter('toUSD', function (value) {     return `$${value}`; });  new Vue({     el: '#app',       data: {         price: 351.99     } });  // USAGE    {{ price | toUSD }} 

本地過濾器

本地過濾器注冊到一個(gè)Vue組件作用域中,來看看如何創(chuàng)建:

// 在此示例中,我們將創(chuàng)建一個(gè)過濾器,將字符串變成大寫。  // 聲明 new Vue({     el: '#app',      data: {         name: 'scotch.io'     },      filters: {        // Filter definitions         Upper(value) {             return value.toUpperCase();         }     } });  // 用法    {{ name | Upper }} 

如上面的示例中看到的那樣,本地過濾器作為“filters”屬性內(nèi)的函數(shù)存儲在Vue組件中。我們可以注冊任意多個(gè):

...     filters: {         Upper(value) {               return value.toUpperCase();         },         Lower(value) {             return value. toLowerCase();         },     } ....

附加參數(shù)設(shè)置

正如我們在本文引言中所提到的,過濾器可以根據(jù)需要接受任意多個(gè)參數(shù)

// 聲明 Vue.filter('readMore', function (text, length, suffix) {     return text.substring(0, length) + suffix; });  new Vue({     el: '#app',      data: {         text: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Non ab modi repellendus labore facere, fugiat ipsam quae accusantium commodi voluptas nesciunt dolor similique ipsum accusamus earum eligendi suscipit laborum quod.'     } });  // 用法    {{ text | readMore(10, '...') }} 

在此示例中,我們創(chuàng)建了一個(gè)名稱為“readMore”的過濾器,該過濾器會(huì)將字符串的長度限制為給定的字符數(shù),并且還會(huì)在其中添加所選擇的后綴。Vue.js  將要過濾的值作為第一個(gè)參數(shù) text 傳遞,length 和 suffix 作為第二個(gè)和第三個(gè)參數(shù)傳遞。

鏈?zhǔn)竭^濾器

關(guān)于過濾器,我最喜歡的一點(diǎn)是能夠使用管道(|)符號將它們鏈接起來,并通過一系列轉(zhuǎn)換器運(yùn)行單個(gè)值。再舉一個(gè)價(jià)格的例子,我們想限制價(jià)格的小數(shù)位以及加價(jià)格的單位。

// JS Vue.filter('toFixed', function (price, limit) {     return price.toFixed(limit); });  Vue.filter('toUSD', function (price) {     return `$${price}`; });  new Vue({     el: '#app',      data: {         price: 435.333     } });  // HTML     {{ price | toFixed(2) | toUSD }} 

示例

接下來,我們通過一些事例來鞏固一下。

將 JS 值轉(zhuǎn)換為JSON字符串

// JS Vue.filter('json', function (value) {     return JSON.stringify(value); });  new Vue({     el: '#app',      data: {         user: {             username: 'johndoe',             email: 'john@example.com',             countryCode: 'U.K.'         }     } });   // HTML    {{ user | json }} 

從對象數(shù)組中提取屬性值列表

Vue.filter('pluck', function (objects, key) {     return objects.map(function(object) {          return object[key];     }); });  new Vue({     el: '#app',      data: {         users: [         {             "id": 4,             "first_name": "Eve",             "last_name": "Holt"         },         {             "id": 5,             "first_name": "Charles",             "last_name": "Morris"         },         {             "id": 6,             "first_name": "Tracey",             "last_name": "Ramos"         }         ]     } });   // HTML     {{ users | pluck('last_name') }} 

返回給定索引處的元素

Vue.filter('at', function (value, index) {     return value[index]; });  new Vue({     el: '#app',      data: {         videos: ['Zi_XLOBDo_Y', 'sOnqjkJTMaA', 'sOnqjkJTMaA']     } });  // HTML    {{ videos | at(1) }} 

返回給定列表中的最小值

// JS Vue.filter('min', function (values) {     return Math.min(...values); });  new Vue({     el: '#app',      data: {         ages: [23, 19, 45, 12, 32]     } });  // HTML     {{ ages | min }} 

隨機(jī)排列元素列表:

Vue.filter('shuffle', function (values) {     for (var i = values.length - 1; i > 0; i--) {         var j = Math.floor(Math.random() * (i + 1));         var temp = values[i];         values[i] = values[j];         values[j] = temp;     }     return values; });  new Vue({     el: '#app',      data: {         cards: ['Lahire', 'Judith', 'Lancelot', 'Alexandre']     } });  // HTML     {{ cards | shuffle }} 

返回?cái)?shù)組的第一個(gè)元素:

Vue.filter('first', function (values) {     if(Array.isArray(values)) {         return values[0];     }     return values; });  new Vue({     el: '#app',      data: {         consoles: ['PlayStation', 'Nintendo DS', 'Xbox', 'Atari']     } });  // HTML    {{ consoles | first }} 

返回?cái)?shù)組的最后一個(gè)元素

Vue.filter('last', function (values) {     if(Array.isArray(values)) {         return values[values.length - 1];     }     return values; });  new Vue({     el: '#app',      data: {         consoles: ['PlayStation', 'Nintendo DS', 'Xbox', 'Atari']     } });  // HTML    {{ consoles | last }} 

返回過濾指定元素的數(shù)組的副本

Vue.filter('without', function (values, exclude) {     return values.filter(function(element) {         return !exclude.includes(element);     }); });  new Vue({     el: '#app',      data: {         unpaidInvoices: ['#1001', '#1002', '#1003', '#1004']     } });  // HTML    {{ unpaidInvoices | without('#1003') }} 

刪除數(shù)組中重復(fù)的元素

Vue.filter('unique', function (values, unique) {     return values.filter(function(element, index, self) {         return index == self.indexOf(element);     }); });  new Vue({     el: '#app',      data: {         recentViewedPosts: [13, 43, 23, 13, 43, 3, 98, 42, 65]     } });  // HTML     {{ recentViewedPosts | unique }} 

在字符串后加上文本

Vue.filter('prepend', function (string, prepend) {     return `${string}${prepend}`; });  new Vue({     el: '#app',      data: {         greeting: 'Hello'     } });  // HTML    {{ greeting | prepend(' World!') }} 

重復(fù)一個(gè)字符串n次

Vue.filter('repeat', function (string, times) {     return string.repeat(times); });  new Vue({     el: '#app',      data: {         greeting: 'Hello'     } });  // HTML     {{ greeting | repeat(3) }} 

關(guān)于 Vue中怎么創(chuàng)建并使用過濾器問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。


分享文章:Vue中怎么創(chuàng)建并使用過濾器
本文地址:http://weahome.cn/article/pdicip.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部