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

詳解Vue串聯(lián)過濾器的使用場景

 更新時(shí)間:2020年04月30日 10:51:54   作者:尹成諾  
這篇文章主要介紹了詳解Vue串聯(lián)過濾器的使用場景,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

平時(shí)開發(fā)中,需要用到過濾器的地方有很多,比如單位轉(zhuǎn)換、數(shù)字打點(diǎn)、文本格式化等,比如:

Vue.filter('toThousandFilter', function (value) {
 if (!value) return ''
 value = value.toString()
 return .replace(str.indexOf('.') > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g, '$1,')
})

實(shí)現(xiàn)效果:

30000 => 30,000

當(dāng)然這只是常規(guī)用法,沒什么好說的。下面來說一個(gè)我在開發(fā)中遇到的一個(gè)需要用到串聯(lián)過濾器的使用場景。

假設(shè)需要獲取一個(gè)訂單列表,其中的每一項(xiàng)的 status 字段用來表示訂單狀態(tài):        

 {
      id: '',
      order_num: '123456789',
      goodList: [ ... ],
      address: { ... },
      status: 1 // 1 待付款 2 待發(fā)貨 3 待收貨
     }

那我們拿到這個(gè)數(shù)據(jù)在,v-for 的時(shí)候,肯定會這樣做:

 <template>
  <!-- ... -->
  <span class="order_status">{{ orderItem.status | getOrderStatus }}</span>
  <!-- ... -->
</template>
<script>
 export default {
  // ...
  filters: {
    getOrderStatus(status) {
      switch (status.toString()) {
        case '1':
          return '待付款';
        case '1':
          return '待發(fā)貨';
        case '1':
          return '待收貨';
        default:
          return '';
      }
    }
  }
  // ...
 }
</script>
<style scoped type="scss">
  // ...
  .order_status {
    font-size: 14px;
  }
  // ...
</style>

這樣,表示狀態(tài)的 1, 2, 3 就變成了 待付款,待發(fā)貨,待收貨。這沒有什么問題。但是,需求來了,當(dāng)訂單未付款時(shí),表示狀態(tài)的文字應(yīng)該為紅色。就是當(dāng)狀態(tài)為 待付款 時(shí),文字要為紅色!這個(gè)問題曾經(jīng)困擾了有一段時(shí)間,用了各種辦法,雖然也是實(shí)現(xiàn)了需求,但終歸不太優(yōu)雅。直到最近在翻看 vue 文檔,才想起來有串聯(lián)過濾器的用法,可以完美解決這個(gè)需求,上碼:

<template>
  <!-- ... -->
  <span class="order_status" :class="orderItem.status | getOrderStatus | getOrderStatusClass">{{ orderItem.status | getOrderStatus }}</span>
  <!-- ... -->
</template>
<script>
 export default {
  // ...
  filters: {
    getOrderStatus(status) {
      switch (status.toString()) {
        case '1':
          return '待付款';
        case '1':
          return '待發(fā)貨';
        case '1':
          return '待收貨';
        default:
          return '';
      }
    },
    getOrderStatusClass(status) {
      if (status === '待付款') {
        return 'not-pay'
      }
      return ''
    }
  }
  // ...
 }
</script>
<style scoped type="scss">
  // ...
  .order_status {
    font-size: 14px;
    &.not-pay {
      color: red;
    }
  }
  // ...
</style>

就這么簡單。

關(guān)于過濾器,這里還有幾點(diǎn)要注意的:

  • 過濾器必須是個(gè)純函數(shù)
  • 過濾器中拿不到 vue 實(shí)例,這是 vue 故意這么做的
  • 在全局注冊過濾器是用 Vue.filter(),局部則是 filters: {}
  • 在方法中調(diào)用過濾器方法為: this.$options.filters.XXX

到此這篇關(guān)于詳解Vue串聯(lián)過濾器的使用場景的文章就介紹到這了,更多相關(guān)Vue串聯(lián)過濾器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Vue中傳遞自定義參數(shù)到后端、后端獲取數(shù)據(jù)并使用Map接收參數(shù)

    Vue中傳遞自定義參數(shù)到后端、后端獲取數(shù)據(jù)并使用Map接收參數(shù)

    有些傳遞的參數(shù)是直接拼接到URL地址欄中的、但是為了統(tǒng)一管理、不能將傳遞的參數(shù)直接拼接到地址欄中,接下來通過本文給大家介紹Vue中傳遞自定義參數(shù)到后端、后端獲取數(shù)據(jù)并使用Map接收參數(shù),感興趣的朋友一起看看吧
    2022-10-10
  • 詳解@Vue/Cli 3 Invalid Host header 錯(cuò)誤解決辦法

    詳解@Vue/Cli 3 Invalid Host header 錯(cuò)誤解決辦法

    這篇文章主要介紹了詳解@Vue/Cli 3 Invalid Host header 錯(cuò)誤解決辦法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • 解決Vue項(xiàng)目打包后打開index.html頁面顯示空白以及圖片路徑錯(cuò)誤的問題

    解決Vue項(xiàng)目打包后打開index.html頁面顯示空白以及圖片路徑錯(cuò)誤的問題

    這篇文章主要介紹了解決Vue項(xiàng)目打包后打開index.html頁面顯示空白以及圖片路徑錯(cuò)誤的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Vite3結(jié)合Svelte3使用@import導(dǎo)入scss樣式

    Vite3結(jié)合Svelte3使用@import導(dǎo)入scss樣式

    這篇文章主要為大家介紹了Vite3結(jié)合Svelte3使用@import導(dǎo)入scss樣式實(shí)現(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • 一文教你vue3 watch如何停止監(jiān)視

    一文教你vue3 watch如何停止監(jiān)視

    這篇文章主要為大家詳細(xì)介紹了vue3中watch如何停止監(jiān)視,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 詳解vue-cli構(gòu)建項(xiàng)目反向代理配置

    詳解vue-cli構(gòu)建項(xiàng)目反向代理配置

    本篇文章主要介紹了詳解vue-cli構(gòu)建項(xiàng)目反向代理配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue-cli 打包使用history模式的后端配置實(shí)例

    vue-cli 打包使用history模式的后端配置實(shí)例

    今天小編就為大家分享一篇vue-cli 打包使用history模式的后端配置實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue.js購物車添加商品組件的方法

    vue.js購物車添加商品組件的方法

    這篇文章主要介紹了vue.js購物車添加商品組件的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • vue?Router(v3.x)?路由傳參的三種方式場景分析

    vue?Router(v3.x)?路由傳參的三種方式場景分析

    vue?路由傳參的使用場景一般都是應(yīng)用在父路由跳轉(zhuǎn)到子路由時(shí),攜帶參數(shù)跳轉(zhuǎn),傳參方式可劃分為?params?傳參和?query?傳參,而?params?傳參又可分為在?url?中顯示參數(shù)和不顯示參數(shù)兩種方式,這就是vue路由傳參的三種方式,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • 創(chuàng)建nuxt.js項(xiàng)目流程圖解

    創(chuàng)建nuxt.js項(xiàng)目流程圖解

    Nuxt.js是創(chuàng)建Universal Vue.js應(yīng)用程序的框架。它的主要范圍是UI渲染,同時(shí)抽象出客戶端/服務(wù)器分布。我們的目標(biāo)是創(chuàng)建一個(gè)足夠靈活的框架,以便您可以將其用作主項(xiàng)目庫或基于Node.js的當(dāng)前項(xiàng)目。
    2020-03-03

最新評論

靖西县| 常宁市| 平和县| 遂溪县| 天长市| 白河县| 金湖县| 剑川县| 嵊州市| 河源市| 丰镇市| 通河县| 阳朔县| 防城港市| 岢岚县| 丰县| 上高县| 长宁县| 平塘县| 乡城县| 高要市| 钦州市| 自贡市| 罗甸县| 八宿县| 永川市| 江陵县| 平潭县| 辽宁省| 米脂县| 绵阳市| 建湖县| 门源| 宣汉县| 罗源县| 赞皇县| 咸阳市| 界首市| 泾阳县| 安泽县| 资兴市|