国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

Vue封裝全局過濾器Filters的步驟

瀏覽:30日期:2022-11-21 17:34:02

(PS:本文代碼在vue-cli3構建的基礎vue項目之上進行編寫:vue create my-project)

在前后端分離的項目中,經常會有后臺返回的數據需要經過處理才能顯示到頁面上的場景。

使用最多的場景就是日期/時間、數字、字符串的格式化處理,實際業務中可能還有更復雜的數據處理邏輯。

下面就拿封裝全局的處理數字和字符串的 filter 來展示 vue 如何 封裝全局filter 并統一處理。

一、定義/封裝過濾器

在 src目錄 下新建 filters目錄 用來專門存放全局過濾器,如果項目的過濾器過多,那么就要按類型分類。如果項目需要前臺處理的數據不是太多,那么就在 filters目錄 下新建一個 index.js 來存放所有的過濾器就足夠了。

index.js代碼如下:

// 封裝過濾器// 過濾器的聲明可以有下列多種寫法/** * Number formatting by unit * like 10000 => 10k * @param {number} num * @param {number} digits * @return {string} */function numberFormatter(num, digits) { const si = [ { value: 1e18, symbol: 'E' }, { value: 1e15, symbol: 'P' }, { value: 1e12, symbol: 'T' }, { value: 1e9, symbol: 'G' }, { value: 1e6, symbol: 'M' }, { value: 1e3, symbol: 'k' } ]; for (let i = 0; i < si.length; i++) { if (num >= si[i].value) { return (num / si[i].value + 0.1).toFixed(digits).replace(/.0+$|(.[0-9]*[1-9])0+$/, ’$1’) + si[i].symbol } } return num.toString();}/** * Number formatting by thousand * like 10000 => '10,000' * @param {number} num * @return {string} */const toThousandFilter = function(num) { return (+num || 0).toString().replace(/^-?d+/g, m => m.replace(/(?=(?!b)(d{3})+$)/g, ’,’))};/** * Upper case first char * like 'wenyuan' => 'Wenyuan' * @param {string} string * @return {string} */const uppercaseFirst = string => { return string.charAt(0).toUpperCase() + string.slice(1);};export default { numberFormatter, toThousandFilter, uppercaseFirst};

二、注冊過濾器

然后在 main.js 中引入注冊即可使用:

import filters from './filters'; // global filters// register global utility filtersObject.keys(filters).forEach(key => { Vue.filter(key, filters[key]);});

Vue封裝全局過濾器Filters的步驟

三、在組件內使用寫好的過濾器

在組件中使用:

<template> <div class='home'> <img alt='Vue logo' src='http://www.cgvv.com.cn/assets/logo.png'/> <h1>score:{{ score | numberFormatter }}</h1> <h1>score:{{ score | toThousandFilter }}</h1> <h1>username:{{ username | uppercaseFirst }}</h1> </div></template><script>export default { name: 'home', components: {}, data() { return { score: 1200000, username: 'wenyuan' }; }};</script>

四、效果

Vue封裝全局過濾器Filters的步驟

五、可能的報錯與注意點

在 main.js 中,要先定義過濾器, 再新建 vue 實例,否則會報Failed to resolve filter: xxx的錯誤。

以上就是Vue封裝全局過濾器Filters的步驟的詳細內容,更多關于vue封裝過濾器的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: 成人福利网站在线看视频 | 国产欧美日韩精品第二区 | 在线免费一区 | 亚洲精品一区二区三区第四页 | 欧美在线成人免费国产 | www.色中色 | 日本高清不卡中文字幕 | 99免费视频观看 | 日韩 国产 欧美 精品 在线 | 毛片免费视频网站 | 韩国巨胸女三级视频网 | 国产午夜不卡在线观看视频666 | 亚洲成人在线免费 | 日韩加勒比 | 欧美成在线视频 | 亚洲免费在线视频观看 | 国内成人免费视频 | 免费中国一级啪啪片 | 美国aaaa一级毛片啊 | 久草手机视频在线观看 | 亚欧成人毛片一区二区三区四区 | 国产成人精品免费视频大全办公室 | 久久视频这里只有精品 | 久久久精品一区二区三区 | 久久受www免费人成看片 | 成人久久18免费网 | 久久福利资源网站免费看 | 国产一区二区福利久久 | 久久精品国产精品青草色艺 | 成人久久视频 | 国产一区二区三区视频在线观看 | 久久99国产精品久久99果冻传媒 | 免费人成年短视频在线观看网站 | 亚洲高清国产一线久久 | 欧美一级淫片免费播放口 | 男女精品视频 | 国产精品久久久久影院色老大 | 国产亚洲精品国产第一 | 国产呦系列呦 | 色综合在 | 日本卡一卡2卡3卡4精品卡无人区 |