最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年09月16日 12:00:52   作者:文淵  
這篇文章主要介紹了Vue封裝全局過濾器Filters的步驟,通過封裝vue全局過濾器實(shí)現(xiàn)filters的統(tǒng)一管理。感興趣的朋友可以了解下

(PS:本文代碼在vue-cli3構(gòu)建的基礎(chǔ)vue項(xiàng)目之上進(jìn)行編寫:vue create my-project)

  在前后端分離的項(xiàng)目中,經(jīng)常會(huì)有后臺(tái)返回的數(shù)據(jù)需要經(jīng)過處理才能顯示到頁面上的場(chǎng)景。

  使用最多的場(chǎng)景就是日期/時(shí)間、數(shù)字、字符串的格式化處理,實(shí)際業(yè)務(wù)中可能還有更復(fù)雜的數(shù)據(jù)處理邏輯。

  下面就拿封裝全局的處理數(shù)字和字符串的 filter 來展示 vue 如何 封裝全局filter 并統(tǒng)一處理。

一、定義/封裝過濾器

  在 src目錄 下新建 filters目錄 用來專門存放全局過濾器,如果項(xiàng)目的過濾器過多,那么就要按類型分類。
  如果項(xiàng)目需要前臺(tái)處理的數(shù)據(jù)不是太多,那么就在 filters目錄 下新建一個(gè) 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
};

二、注冊(cè)過濾器

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

import filters from "./filters"; // global filters

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

三、在組件內(nèi)使用寫好的過濾器

  在組件中使用:

<template>
 <div class="home">
  <img alt="Vue logo" src="../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>

四、效果

五、可能的報(bào)錯(cuò)與注意點(diǎn)

  在 main.js 中,要先定義過濾器, 再新建 vue 實(shí)例,否則會(huì)報(bào)Failed to resolve filter: xxx的錯(cuò)誤。

以上就是Vue封裝全局過濾器Filters的步驟的詳細(xì)內(nèi)容,更多關(guān)于vue封裝過濾器的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • vue中如何讓子組件修改父組件數(shù)據(jù)

    vue中如何讓子組件修改父組件數(shù)據(jù)

    這篇文章主要介紹了vue中子組件修改父組件數(shù)據(jù)的相關(guān)資料,文中介紹了vue中watch的認(rèn)識(shí),關(guān)于子組件修改父組件屬性認(rèn)識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • Vue3中reactive響應(yīng)式失效的解決方案

    Vue3中reactive響應(yīng)式失效的解決方案

    這篇文章主要給大家分享Vue3中reactive響應(yīng)式失效的問題的解決方法,文中有詳細(xì)的解決方案供大家參考,如果又遇到一樣問題的同學(xué),可以借鑒閱讀本文
    2023-08-08
  • vue如何安裝使用Quill富文本編輯器

    vue如何安裝使用Quill富文本編輯器

    這篇文章主要為大家詳細(xì)介紹了vue如何安裝使用Quill富文本編輯器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • VUE頁面中加載外部HTML的示例代碼

    VUE頁面中加載外部HTML的示例代碼

    本篇文章主要介紹了VUE頁面中加載外部HTML的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue中用H5實(shí)現(xiàn)文件上傳的方法實(shí)例代碼

    vue中用H5實(shí)現(xiàn)文件上傳的方法實(shí)例代碼

    本篇文章主要介紹了vue中用H5實(shí)現(xiàn)文件上傳的方法實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • vue?點(diǎn)擊按鈕?路由跳轉(zhuǎn)指定頁面的實(shí)現(xiàn)方式

    vue?點(diǎn)擊按鈕?路由跳轉(zhuǎn)指定頁面的實(shí)現(xiàn)方式

    這篇文章主要介紹了vue?點(diǎn)擊按鈕?路由跳轉(zhuǎn)指定頁面的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • Vue如何由本地js中存放的url地址獲取圖片

    Vue如何由本地js中存放的url地址獲取圖片

    這篇文章主要介紹了Vue如何由本地js中存放的url地址獲取圖片問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • vue鍵盤事件keyup、keydown的作用

    vue鍵盤事件keyup、keydown的作用

    這篇文章主要介紹了vue鍵盤事件keyup、keydown的作用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • antd多選下拉框一行展示的實(shí)現(xiàn)方式

    antd多選下拉框一行展示的實(shí)現(xiàn)方式

    這篇文章主要介紹了antd多選下拉框一行展示的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • vue基于element-ui的三級(jí)CheckBox復(fù)選框功能的實(shí)現(xiàn)代碼

    vue基于element-ui的三級(jí)CheckBox復(fù)選框功能的實(shí)現(xiàn)代碼

    最近vue項(xiàng)目需要用到三級(jí)CheckBox復(fù)選框,需要實(shí)現(xiàn)全選反選不確定三種狀態(tài)。這篇文章主要介紹了vue基于element-ui的三級(jí)CheckBox復(fù)選框功能的實(shí)現(xiàn)方法,需要的朋友可以參考下
    2018-10-10

最新評(píng)論

枞阳县| 龙山县| 鲜城| 斗六市| 宁陕县| 台湾省| 历史| 莎车县| 华蓥市| 慈利县| 高安市| 蒲城县| 小金县| 连江县| 滨州市| 白城市| 连平县| 米脂县| 原阳县| 深州市| 兴隆县| 维西| 溧水县| 合阳县| 清新县| 怀安县| 淮阳县| 松江区| 丹寨县| 洞口县| 涿鹿县| 东至县| 乐山市| 上林县| 蓝山县| 上高县| 邢台市| 黄山市| 潜山县| 罗平县| 宁海县|