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

VUE中的filters過(guò)濾器使用方法

 更新時(shí)間:2022年03月29日 14:28:45   作者:小小張自由--張有博  
這篇文章主要介紹了VUE中的filters過(guò)濾器使用方法,文章主要通過(guò)描述全局過(guò)濾器、全局過(guò)濾器之單一掛載、全局過(guò)濾器之批量掛載?、組件過(guò)濾器展開內(nèi)容,具有一定的參考價(jià)值組要的小伙伴可以參考一下

前言

Vue.js 允許我們自定義過(guò)濾器,可被用于一些常見的文本格式化。過(guò)濾器可以用在兩個(gè)地方:雙花括號(hào)({undefined{ }})插值和 v-bind 表達(dá)式 (后者從 2.1.0+ 開始支持)。過(guò)濾器應(yīng)該被添加在 JavaScript 表達(dá)式的尾部,由“管道”符號(hào)指示。

<!-- 在雙花括號(hào)中 -->
<div>{{ message | capitalize }}</div>
 
<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>

一、全局過(guò)濾器

定義一個(gè)全局過(guò)濾器很簡(jiǎn)單,只需要導(dǎo)出一個(gè)方法即可。

使用的時(shí)候很簡(jiǎn)單,只需要在入口文件全局引入此過(guò)濾器即可,使用 Vue.filter(key, value) 引入。

比如,Java后端返回的時(shí)間戳精確到秒,而JS中的時(shí)間戳是用毫秒表示,則可以定義一個(gè)轉(zhuǎn)換時(shí)間戳的全局過(guò)濾器:

//main.js
import Vue from 'vue'
Vue.filter('millisecond', (value) =&gt; {
  if (!value) return ''
  value = value.toString()
  return value.charAt(0).toUpperCase() + value.slice(1)
})

在需要使用的組件使用:

<div>{{1516101106 | millisecond}}</div>

1、全局過(guò)濾器之單一掛載

/**
 * dateTmp:要過(guò)濾的值
 * fmtTmp:傳入的參數(shù),可接收多個(gè)參數(shù)
 */
<template>
   <!-- 2021-12-20 19:14:18 -->
  <div>{{ 1639998858000 | dateFormat("yyyy/MM/dd HH:mm:ss") }}</div>
</template>
 
Vue.filter('dateFormat', function (dateTmp, fmtTmp) {
  let fmt = fmtTmp
  let date = dateTmp
 
  if (!fmt) {
    fmt = 'yyyy.MM.dd'
  }
  if (!(date instanceof Date)) {
    date = new Date(date)
  }
  let o = {
    'M+': date.getMonth() + 1, // 月份
    'd+': date.getDate(), // 日
    'h+': date.getHours() % 12 == 0 ? 12 : date.getHours() % 12, // 小時(shí)
    'H+': date.getHours(), // 小時(shí)
    'm+': date.getMinutes(), // 分
    's+': date.getSeconds(), // 秒
    'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
    'S': date.getMilliseconds() // 毫秒
  }
  let week = {
    '0': '日',
    '1': '一',
    '2': '二',
    '3': '三',
    '4': '四',
    '5': '五',
    '6': '六'
  }
 
  if (/(y+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  }
  if (/(E+)/.test(fmt)) {
    fmt = fmt.replace(RegExp.$1, ((RegExp.$1.length > 1) ? (RegExp.$1.length > 2 ? '星期' : '周') : '') + week[date.getDay() + ''])
  }
  for (var k in o) {
    if (new RegExp('(' + k + ')').test(fmt)) {
      fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
    }
  }
  return fmt
});

2、全局過(guò)濾器之批量掛載

//定義方法
//filters.js
export function slice (temp,num) {
    return temp.slice(0,num);
}
//掛載
//main.js
import * as filters from '@/assets/js/filters';
 
Object.keys(filters).forEach(key => {
    Vue.filter(key, filters[key]);
});
//調(diào)用
<!-- 1234 -->
<div>{{ '123456' | slice(4) }} </div>

二、組件過(guò)濾器

組件過(guò)濾器更簡(jiǎn)單,只需在對(duì)應(yīng)組件中定義 filters 即可,不過(guò)只針對(duì)本組件有效。

比如定義一個(gè)首字母大寫的過(guò)濾器:

//定義方法
export default {
  filters: {
    capitalize: function (value) {
      if (!value) return ''
      value = value.toString()
      return value.charAt(0).toUpperCase() + value.slice(1)
    }
  }
}

例子:

<template>
  <!-- 我要被過(guò)... -->
  <div>{{ msg | setSize }}</div>
</template>
 
<script>
export default {
  data() {
    return {
      msg: "我要被過(guò)濾",
    };
  },
  filters: {
    setSize(value) {
      if (value.length > 4) {
        return value.splice(0, 4) + "...";
      } else {
        return value;
      }
    },
  },
};
</script>

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

相關(guān)文章

  • npm安裝vue@cli報(bào)錯(cuò)的簡(jiǎn)單處理方式

    npm安裝vue@cli報(bào)錯(cuò)的簡(jiǎn)單處理方式

    最近工作中遇到了報(bào)錯(cuò),現(xiàn)在將解決的辦法分享給大家,下面這篇文章主要給大家介紹了關(guān)于npm安裝vue@cli報(bào)錯(cuò)的簡(jiǎn)單處理方式,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • vue中使用swiper失效問(wèn)題及解決

    vue中使用swiper失效問(wèn)題及解決

    這篇文章主要介紹了vue中使用swiper失效問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • element ui表格實(shí)現(xiàn)下拉篩選功能

    element ui表格實(shí)現(xiàn)下拉篩選功能

    這篇文章主要為大家詳細(xì)介紹了element ui表格實(shí)現(xiàn)下拉篩選功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 淺談vue首屏加載優(yōu)化

    淺談vue首屏加載優(yōu)化

    這篇文章主要介紹了淺談vue首屏加載優(yōu)化,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • vue tab切換,解決echartst圖表寬度只有100px的問(wèn)題

    vue tab切換,解決echartst圖表寬度只有100px的問(wèn)題

    這篇文章主要介紹了vue tab切換,解決echartst圖表寬度只有100px的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • vue.js使用watch監(jiān)聽路由變化的方法

    vue.js使用watch監(jiān)聽路由變化的方法

    這篇文章主要介紹了vue.js使用watch監(jiān)聽路由變化的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • vue.js的手腳架vue-cli項(xiàng)目搭建的步驟

    vue.js的手腳架vue-cli項(xiàng)目搭建的步驟

    這篇文章主要介紹了vue.js的手腳架vue-cli項(xiàng)目搭建的步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 誤引用vuex-persistedstate導(dǎo)致用戶信息無(wú)法清除問(wèn)題及解決

    誤引用vuex-persistedstate導(dǎo)致用戶信息無(wú)法清除問(wèn)題及解決

    這篇文章主要介紹了誤引用vuex-persistedstate導(dǎo)致用戶信息無(wú)法清除問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • JS圖片懶加載庫(kù)VueLazyLoad詳解

    JS圖片懶加載庫(kù)VueLazyLoad詳解

    這篇文章主要為大家介紹了JS圖片懶加載庫(kù)VueLazyLoad示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • Vue組件tree實(shí)現(xiàn)樹形菜單

    Vue組件tree實(shí)現(xiàn)樹形菜單

    這篇文章主要為大家詳細(xì)介紹了Vue組件tree實(shí)現(xiàn)樹形菜單,小巧實(shí)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評(píng)論