亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Vue的過(guò)濾器(filters)函數(shù)用法示例

 更新時(shí)間:2025年09月06日 11:43:38   投稿:daisy  
在Vue.js中,過(guò)濾器(Filters)用于文本格式化,這篇文章主要介紹了Vue的過(guò)濾器(filters)函數(shù)用法的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

在 Vue 中,過(guò)濾器(filters)是一種特殊的函數(shù),主要用于對(duì)文本數(shù)據(jù)進(jìn)行格式化處理,比如轉(zhuǎn)換大小寫(xiě)、日期格式化、貨幣格式化等。

1. 局部過(guò)濾器

你可以在組件內(nèi)部定義過(guò)濾器,這樣它就只在當(dāng)前組件中有效。

export default {
  data() {
    return {
      price: 99.9
    }
  },
  // 定義局部過(guò)濾器
  filters: {
    currency(value) {
      if (typeof value !== 'number') {
        return value;
      }
      return '¥' + value.toFixed(2);
    }
  }
}

在模板中使用過(guò)濾器:

<template>
  <div>
    <!-- 輸出:¥99.90 -->
    <p>{{ price | currency }}</p>
  </div>
</template>

2. 全局過(guò)濾器

若要讓過(guò)濾器在所有組件中都能使用,可將其定義為全局過(guò)濾器。通常在創(chuàng)建 Vue 實(shí)例之前定義全局過(guò)濾器。

import Vue from 'vue';

// 定義全局過(guò)濾器
Vue.filter('uppercase', function(value) {
  if (!value) return '';
  return value.toString().toUpperCase();
});

// 創(chuàng)建 Vue 實(shí)例
new Vue({
  // ...
});

在任意組件的模板中使用全局過(guò)濾器:

<template>
  <div>
    <!-- 輸出:HELLO WORLD -->
    <p>{{ message | uppercase }}</p>
  </div>
</template>

3. 過(guò)濾器串聯(lián)

Vue 過(guò)濾器支持串聯(lián)使用,也就是一個(gè)值可以依次通過(guò)多個(gè)過(guò)濾器進(jìn)行處理。

過(guò)濾器串聯(lián)的順序是從左到右依次執(zhí)行的,因此寫(xiě)入模板的先后順序會(huì)直接影響最終結(jié)果。

filters: {
  currency(value) {
    return '¥' + value.toFixed(2);
  },
  discount(value, rate) {
    return value * (rate || 1);
  }
}

在模板中串聯(lián)使用過(guò)濾器:

<template>
  <div>
    <!-- 輸出:¥79.92 -->
    <p>{{ 99.9 | discount(0.8) | currency }}</p>
  </div>
</template>

4. 過(guò)濾器傳參

過(guò)濾器可以接收額外的參數(shù),從而實(shí)現(xiàn)更靈活的格式化。

import dayjs from 'dayjs';
……
filters: {
  formatDate(value, format = 'YYYY-MM-DD') {
    // 這里可以使用日期庫(kù)如 day.js 進(jìn)行格式化
    return dayjs(value).format(format)
  }
}

在模板中傳遞參數(shù)給過(guò)濾器:

<template>
  <div>
    <!-- 輸出:2023/10/15 -->
    <p>{{ date | formatDate('YYYY/MM/DD') }}</p>
  </div>
</template>

5. Vue 3 中的變化

在 Vue 3 里,過(guò)濾器已被移除,官方推薦使用計(jì)算屬性(computed)或者方法(methods)來(lái)替代過(guò)濾器的功能。

export default {
  data() {
    return {
      price: 99.9
    }
  },
  computed: {
    formattedPrice() {
      return '¥' + this.price.toFixed(2);
    }
  }
}

在模板中使用計(jì)算屬性替代過(guò)濾器:

<template>
  <div>
    <!-- 輸出:¥99.90 -->
    <p>{{ formattedPrice }}</p>
  </div>
</template>

Vue 3 移除過(guò)濾器(filters)主要基于以下幾個(gè)原因:

1) 語(yǔ)法一致性與冗余性

  • 過(guò)濾器本質(zhì)上是一種特殊的語(yǔ)法糖,其功能可以被計(jì)算屬性(computed)或方法(methods)完全替代。
  • 移除過(guò)濾器減少了學(xué)習(xí)成本和語(yǔ)法復(fù)雜度,保持了 "一個(gè)功能只對(duì)應(yīng)一種實(shí)現(xiàn)方式" 的設(shè)計(jì)原則。

2)組合式 API 的興起

  • Vue 3 主推的組合式 API(Composition API)更強(qiáng)調(diào)邏輯復(fù)用和代碼組織,過(guò)濾器在這種范式下顯得格格不入。
  • 過(guò)濾器只能在模板中使用,而計(jì)算屬性和方法可以在 setup () 函數(shù)中定義,更好地與組合式 API 集成。

3)類型推導(dǎo)與 IDE 支持

  • 過(guò)濾器的類型推導(dǎo)較為困難,尤其是在 TypeScript 環(huán)境下。
  • 計(jì)算屬性和方法作為普通 JavaScript 函數(shù),更容易被類型系統(tǒng)和 IDE 正確識(shí)別。

4)性能優(yōu)化

  • 過(guò)濾器的實(shí)現(xiàn)需要額外的運(yùn)行時(shí)開(kāi)銷,移除后可以簡(jiǎn)化編譯過(guò)程和渲染邏輯。

總結(jié) 

到此這篇關(guān)于Vue的過(guò)濾器(filters)函數(shù)用法的文章就介紹到這了,更多相關(guān)Vue 過(guò)濾器filters函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue-cli3項(xiàng)目配置eslint代碼規(guī)范的完整步驟

    vue-cli3項(xiàng)目配置eslint代碼規(guī)范的完整步驟

    這篇文章主要給大家介紹了關(guān)于vue-cli3項(xiàng)目配置eslint代碼規(guī)范的完整步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • vue實(shí)現(xiàn)三級(jí)頁(yè)面跳轉(zhuǎn)功能

    vue實(shí)現(xiàn)三級(jí)頁(yè)面跳轉(zhuǎn)功能

    這篇文章主要介紹了vue實(shí)現(xiàn)三級(jí)頁(yè)面跳轉(zhuǎn)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • vue實(shí)現(xiàn)web滾動(dòng)條分頁(yè)

    vue實(shí)現(xiàn)web滾動(dòng)條分頁(yè)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)web滾動(dòng)條分頁(yè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue3?watchEffect的使用教程和相關(guān)概念

    Vue3?watchEffect的使用教程和相關(guān)概念

    Vue?3?引入了?Composition?API,其中?watchEffect?是一個(gè)非常強(qiáng)大的工具,用于響應(yīng)式地追蹤依賴項(xiàng)的變化,本文將詳細(xì)介紹?watchEffect?的使用方法和相關(guān)概念,文中有詳細(xì)的代碼供大家參考,需要的朋友可以參考下
    2024-08-08
  • vue2如何使用vue-i18n搭建多語(yǔ)言切換環(huán)境

    vue2如何使用vue-i18n搭建多語(yǔ)言切換環(huán)境

    這篇文章主要介紹了vue2-使用vue-i18n搭建多語(yǔ)言切換環(huán)境的相關(guān)知識(shí),在data(){}中獲取的變量存在更新this.$i18n.locale的值時(shí)無(wú)法自動(dòng)切換的問(wèn)題,需要刷新頁(yè)面才能切換語(yǔ)言,感興趣的朋友一起看看吧
    2023-12-12
  • Vue3新特性Suspense和Teleport應(yīng)用場(chǎng)景分析

    Vue3新特性Suspense和Teleport應(yīng)用場(chǎng)景分析

    本文介紹了Vue2和Vue3中的Suspense用于處理異步請(qǐng)求的加載提示,以及如何在組件間實(shí)現(xiàn)動(dòng)態(tài)加載,同時(shí),Teleport技術(shù)展示了如何在DOM中靈活地控制組件的渲染位置,解決布局問(wèn)題,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • vue中三種不同插槽使用小結(jié)

    vue中三種不同插槽使用小結(jié)

    本文主要介紹了vue中三種不同插槽使用小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • vue實(shí)現(xiàn)標(biāo)簽云效果的示例

    vue實(shí)現(xiàn)標(biāo)簽云效果的示例

    這篇文章主要介紹了vue實(shí)現(xiàn)標(biāo)簽云效果的示例,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-11-11
  • 使用Vue3+ts?開(kāi)發(fā)ProTable源碼教程示例

    使用Vue3+ts?開(kāi)發(fā)ProTable源碼教程示例

    這篇文章主要為大家介紹了使用Vue3+ts?開(kāi)發(fā)ProTable源碼示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • vue實(shí)現(xiàn)點(diǎn)擊隱藏與顯示實(shí)例分享

    vue實(shí)現(xiàn)點(diǎn)擊隱藏與顯示實(shí)例分享

    在本篇文章中小編給大家分享了vue如何實(shí)現(xiàn)點(diǎn)擊隱藏與顯示的相關(guān)內(nèi)容,有需要的朋友們跟著學(xué)習(xí)下。
    2019-02-02

最新評(píng)論