欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

一、定義/封裝過濾器

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

四、效果

五、可能的報錯與注意點

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

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

相關(guān)文章

  • 尤雨溪開發(fā)vue?dev?server理解vite原理

    尤雨溪開發(fā)vue?dev?server理解vite原理

    這篇文章主要為大家介紹了尤雨溪開發(fā)的玩具vite,vue-dev-server來理解vite原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • vue3中provide和inject的使用

    vue3中provide和inject的使用

    provide和inject在Vue 2中已經(jīng)被廣泛應(yīng)用,不是新鮮API,3.0重新認識一下它們兩個,本文重點給大家介紹vue3中provide和inject的使用,需要的朋友參考下吧
    2021-07-07
  • vue2+elementUI的el-tree的懶加載功能

    vue2+elementUI的el-tree的懶加載功能

    這篇文章主要介紹了vue2+elementUI的el-tree的懶加載,文中給大家提到了element?ui?中?el-tree?實現(xiàn)懶加載的方法,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • vue中各選項及鉤子函數(shù)執(zhí)行順序詳解

    vue中各選項及鉤子函數(shù)執(zhí)行順序詳解

    今天小編就為大家分享一篇vue中各選項及鉤子函數(shù)執(zhí)行順序詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Vue實現(xiàn)用戶自定義字段顯示數(shù)據(jù)的方法

    Vue實現(xiàn)用戶自定義字段顯示數(shù)據(jù)的方法

    今天小編就為大家分享一篇Vue實現(xiàn)用戶自定義字段顯示數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • 解決vue.js 數(shù)據(jù)渲染成功仍報錯的問題

    解決vue.js 數(shù)據(jù)渲染成功仍報錯的問題

    今天小編就為大家分享一篇解決vue.js 數(shù)據(jù)渲染成功仍報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • vue使用highcharts自定義儀表盤圖表

    vue使用highcharts自定義儀表盤圖表

    這篇文章主要為大家詳細介紹了vue使用highcharts自定義儀表盤圖表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vue發(fā)送ajax請求方法介紹

    Vue發(fā)送ajax請求方法介紹

    這篇文章介紹了Vue發(fā)送ajax請求的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-01-01
  • vue uniapp實現(xiàn)分段器效果

    vue uniapp實現(xiàn)分段器效果

    這篇文章主要為大家詳細介紹了vue uniapp實現(xiàn)分段器效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • electron最小化托盤設(shè)置

    electron最小化托盤設(shè)置

    本文主要介紹了electron最小化托盤設(shè)置,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04

最新評論