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

教你三分鐘掌握Vue過(guò)濾器filters及時(shí)間戳轉(zhuǎn)換

 更新時(shí)間:2023年03月28日 10:18:24   作者:北極光之夜。  
這篇文章教你三分鐘掌握Vue過(guò)濾器filters及時(shí)間戳轉(zhuǎn)換,本文將結(jié)合時(shí)間戳轉(zhuǎn)換的例子帶你快速了解filters的用法,需要的朋友可以參考下

一.速識(shí)概念:

   大家好呀,??vue的filters過(guò)濾器是比較常見(jiàn)的一個(gè)知識(shí)點(diǎn),下面我將結(jié)合時(shí)間戳轉(zhuǎn)換的例子帶你快速了解filters的用法~
  按照官方的活來(lái)說(shuō),Vue.js 允許你自定義過(guò)濾器,可被用于一些常見(jiàn)的文本格式化。過(guò)濾器可以用在兩個(gè)地方:雙花括號(hào)插值和 v-bind 表達(dá)式 (后者從 2.1.0+ 開(kāi)始支持)。過(guò)濾器應(yīng)該被添加在 JavaScript 表達(dá)式的尾部,由“管道”符號(hào)指示。
   簡(jiǎn)單來(lái)說(shuō)就是在filters過(guò)濾器里定義一個(gè)處理函數(shù),把函數(shù)名稱寫(xiě)在管道符 “|” 后面,它就會(huì)處理管道符 “|” 前自定義的數(shù)據(jù),其中自定義的數(shù)據(jù)會(huì)自動(dòng)成為過(guò)濾器函數(shù)的參數(shù)。

<!-- 在雙花括號(hào)中 -->
{{ message | capitalize }}

<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>

過(guò)濾器主要可以分為局部過(guò)濾器和全局過(guò)濾器,下面看詳細(xì)介紹。

二.局部過(guò)濾器:

  1. 局部過(guò)濾器就是在一個(gè)組件的選項(xiàng)中定義本地的過(guò)濾器,只有該組件可以用。在我們一般開(kāi)發(fā)中,對(duì)于時(shí)間后端一般只會(huì)返回一個(gè)時(shí)間戳讓前端自己處理,下面比如定義一個(gè)轉(zhuǎn)換時(shí)間戳為日期格式的過(guò)濾器(注意步驟):

<template>
  <div>
    <!-- 4. 渲染數(shù)據(jù),設(shè)置過(guò)濾器 -->
    {{ times | conversion }}
  </div>
</template>
<script>
export default {
  data() {
    return {
      // 1.模擬一個(gè)時(shí)間戳數(shù)據(jù)
      times: 1616959086000,
    };
  },
  // 2. 定義過(guò)濾器
  filters: {
    //3.定義一個(gè)處理函數(shù),參數(shù)value為要處理數(shù)據(jù)
    conversion: function (value) {
      //調(diào)用Date的方法,處理時(shí)間戳
      return new Date(value).toLocaleString();
    },
  },
};
</script>

結(jié)果,轉(zhuǎn)換成功:

在這里插入圖片描述

 2. 不僅如此,過(guò)濾器還可以串聯(lián),就是說(shuō)可以定義多個(gè)過(guò)濾器,比如下面,相當(dāng)于先用 conversion函數(shù)處理 times 這個(gè)數(shù)據(jù)得出結(jié)果,然后繼續(xù)用 againChange函數(shù)處理前面的結(jié)果得出最終結(jié)果:

  {{ times | conversion | againChange }}

基本演示如下:

<template>
  <div>
    <!-- 5. 放過(guò)濾器 -->
    {{ times | conversion | againChange }}
  </div>
</template>

<script>
export default {
  data() {
    return {
      // 1.模擬一個(gè)時(shí)間戳數(shù)據(jù)
      times: 1616959086000,
    };
  },
  // 2. 定義過(guò)濾器
  filters: {
    //3.定義一個(gè)處理函數(shù),參數(shù)value為要處理數(shù)據(jù)
    conversion: function (value) {
      //調(diào)用Date的方法,處理時(shí)間戳
      return new Date(value).toLocaleString();
    },
    //4.再定義一個(gè)過(guò)濾器,給數(shù)據(jù)前加上"時(shí)間為:"這幾個(gè)字
    againChange: function (value) {
      return "時(shí)間為:" + value;
    },
  },

};
</script>

在這里插入圖片描述

 3. 同時(shí),過(guò)濾器也是可以接收參數(shù)的, 比如我們改進(jìn)第1小點(diǎn)的例子,把時(shí)間戳轉(zhuǎn)換為能指定格式的時(shí)間格式,將想要的時(shí)間格式作為過(guò)濾器參數(shù),具體用法如下(注意步驟):

<template>
  <div>
    <!-- 4. 放過(guò)濾器,同時(shí)傳參數(shù),返回指定格式的時(shí)間 -->
    {{ times | conversion("yyyy-MM-dd HH:mm:ss 星期w") }}
  </div>
</template>

<script>
export default {
  data() {
    return {
      // 1.模擬一個(gè)時(shí)間戳數(shù)據(jù)
      times: 1616959086000,
    };
  },
  // 2. 定義過(guò)濾器
  filters: {
    //3.定義一個(gè)處理函數(shù),參數(shù)value為要處理數(shù)據(jù),format為傳入?yún)?shù)
    conversion: function (value, format) {
      //這個(gè)轉(zhuǎn)換方法就不介紹了,看看就行,過(guò)濾器用法為主
      var date = new Date(value);
      function addZero(date) {
        if (date < 10) {
          return "0" + date;
        }
        return date;
      }
      let getTime = {
        yyyy: date.getFullYear(),
        yy: date.getFullYear() % 100,
        MM: addZero(date.getMonth() + 1),
        M: date.getMonth() + 1,
        dd: addZero(date.getDate()),
        d: date.getDate(),
        HH: addZero(date.getHours()),
        H: date.getHours(),
        hh: addZero(date.getHours() % 12),
        h: date.getHours() % 12,
        mm: addZero(date.getMinutes()),
        m: date.getMinutes(),
        ss: addZero(date.getSeconds()),
        s: date.getSeconds(),
        w: (function () {
          let a = ["日", "一", "二", "三", "四", "五", "六"];
          return a[date.getDay()];
        })(),
      };
      for (let i in getTime) {
        format = format.replace(i, getTime[i]);
      }
      return format;
    },
  },

};
</script>

結(jié)果如下:

在這里插入圖片描述

三.全局過(guò)濾器:

  既然叫全局,那自然是在創(chuàng)建 Vue 實(shí)例之前全局定義過(guò)濾器,配置好后全部組件直接用就行。一般在自定義的一個(gè)文件里專門定義。比如還是上面的處理時(shí)間戳的過(guò)濾器,用法如下:

1.在src目錄下定義filters文件夾,同時(shí)在文件夾里定義一個(gè)filters.js文件:

在這里插入圖片描述

2.filters.js文件代碼如下:

const conversion = function (value, format) {
      var date = new Date(value);
      function addZero(date) {
        if (date < 10) {
          return "0" + date;
        }
        return date;
      }
      let getTime = {
        yyyy: date.getFullYear(),
        yy: date.getFullYear() % 100,
        MM: addZero(date.getMonth() + 1),
        M: date.getMonth() + 1,
        dd: addZero(date.getDate()),
        d: date.getDate(),
        HH: addZero(date.getHours()),
        H: date.getHours(),
        hh: addZero(date.getHours() % 12),
        h: date.getHours() % 12,
        mm: addZero(date.getMinutes()),
        m: date.getMinutes(),
        ss: addZero(date.getSeconds()),
        s: date.getSeconds(),
        w: (function () {
          let a = ["日", "一", "二", "三", "四", "五", "六"];
          return a[date.getDay()];
        })(),
      };
      for (let i in getTime) {
        format = format.replace(i, getTime[i]);
      }
      return format;
    }
  export {
	conversion //通過(guò)此處導(dǎo)出方法
} 

3.在main.js里引入全局過(guò)濾器:

設(shè)置全局過(guò)濾器格式就是Vue.filter(‘過(guò)濾器名稱’,對(duì)應(yīng)處理函數(shù));

import {conversion} from './filters/filters.js'
Vue.filter('conversion', conversion);

4.在某個(gè)組件直接可以使用:

<template>
  <div>
    <!-- 2. 放過(guò)濾器,同時(shí)傳參,為指定格式時(shí)間 -->
    {{ times | conversion("yyyy-MM-dd HH:mm:ss 星期w") }}
  </div>
</template>

<script>
export default {
  data() {
    return {
      // 1.模擬一個(gè)時(shí)間戳數(shù)據(jù)
      times: 1616959086000,
    };
  },
};
</script>

一樣的結(jié)果:

在這里插入圖片描述

四.擴(kuò)展:

  可以發(fā)現(xiàn),filters過(guò)濾器在用法上與computed計(jì)算屬性有點(diǎn)像,那它們區(qū)別是什么呢?

filters 可以傳參,但是不可以訪問(wèn)this。不具備緩存功能。同時(shí)filters可以串聯(lián)??梢栽诰植亢腿衷O(shè)置。filter比較簡(jiǎn)單,只在顯式調(diào)用時(shí)觸發(fā),一般應(yīng)用在模板渲染上。computed不可以傳參,可以訪問(wèn)this,針對(duì)的是變量的操作。背后的處理邏輯比較復(fù)雜,具有緩存能力,在組件內(nèi)普適性更強(qiáng),因此適用于復(fù)雜的數(shù)據(jù)轉(zhuǎn)換、統(tǒng)計(jì)等場(chǎng)景。 五.總結(jié):

   ??上面就是filters過(guò)濾器的大致內(nèi)容了??偟膩?lái)說(shuō),filters過(guò)濾器可以分為局部過(guò)濾器和全局過(guò)濾器。局部過(guò)濾器在組件內(nèi)部有效,全局過(guò)濾器在每個(gè)組件都有效。其中,可以設(shè)置多個(gè)過(guò)濾器和傳參數(shù)給過(guò)濾器。一般過(guò)濾器應(yīng)用在一些簡(jiǎn)單的數(shù)據(jù)渲染上。

到此這篇關(guān)于教你三分鐘掌握Vue過(guò)濾器filters及時(shí)間戳轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Vue過(guò)濾器filters及時(shí)間戳轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue-路由導(dǎo)航菜單欄的高亮設(shè)置方法

    Vue-路由導(dǎo)航菜單欄的高亮設(shè)置方法

    下面小編就為大家分享一篇Vue-路由導(dǎo)航菜單欄的高亮設(shè)置方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • vue-cli3 取消eslint校驗(yàn)代碼的解決辦法

    vue-cli3 取消eslint校驗(yàn)代碼的解決辦法

    這篇文章主要介紹了vue-cli3 取消eslint校驗(yàn)代碼的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 基于Vue.js實(shí)現(xiàn)數(shù)字拼圖游戲

    基于Vue.js實(shí)現(xiàn)數(shù)字拼圖游戲

    為了進(jìn)一步讓大家了解Vue.js的神奇魅力,了解Vue.js的一種以數(shù)據(jù)為驅(qū)動(dòng)的理念,本文主要利用Vue實(shí)現(xiàn)了一個(gè)數(shù)字拼圖游戲,其原理并不是很復(fù)雜,下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)。
    2016-08-08
  • django簡(jiǎn)單的前后端分離的數(shù)據(jù)傳輸實(shí)例 axios

    django簡(jiǎn)單的前后端分離的數(shù)據(jù)傳輸實(shí)例 axios

    這篇文章主要介紹了django簡(jiǎn)單的前后端分離的數(shù)據(jù)傳輸實(shí)例 axios,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 一文帶你吃透Vue3編譯原理

    一文帶你吃透Vue3編譯原理

    一直對(duì)編譯原理的東西都有一種恐懼感,感覺(jué)太難了,看不懂,打開(kāi)vue3源碼看到編譯相關(guān)的代碼,直接嚇退。不要擔(dān)心,小編今天帶你一文吃透Vue3編譯原理
    2023-02-02
  • vue-print-nb只打印一頁(yè)解決方法示例

    vue-print-nb只打印一頁(yè)解決方法示例

    這篇文章主要為大家介紹了vue-print-nb只打印一頁(yè)解決方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-11-11
  • element validate驗(yàn)證函數(shù)不執(zhí)行的原因分析

    element validate驗(yàn)證函數(shù)不執(zhí)行的原因分析

    這篇文章主要介紹了element validate驗(yàn)證函數(shù)不執(zhí)行的原因分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Vue入門之?dāng)?shù)量加減運(yùn)算操作示例

    Vue入門之?dāng)?shù)量加減運(yùn)算操作示例

    這篇文章主要介紹了Vue入門之?dāng)?shù)量加減運(yùn)算操作,結(jié)合實(shí)例形式分析了vue.js基本數(shù)值運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2018-12-12
  • vue組件間通信子與父詳解(二)

    vue組件間通信子與父詳解(二)

    這篇文章主要為大家詳細(xì)介紹了vue組件間通信子與父的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Vue狀態(tài)管理庫(kù)Vuex的入門使用教程

    Vue狀態(tài)管理庫(kù)Vuex的入門使用教程

    Vuex是一個(gè)專門為Vue.js應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理庫(kù)。它采用了一個(gè)集中式的架構(gòu),將應(yīng)用程序的所有組件的狀態(tài)存儲(chǔ)在一個(gè)單獨(dú)的地方。這使得狀態(tài)的管理和維護(hù)變得更加容易
    2023-03-03

最新評(píng)論

方城县| 泰来县| 佛坪县| 阳信县| 合川市| 东港市| 本溪| 泰安市| 乡城县| 义马市| 长宁区| 巍山| 塔城市| 景洪市| 济宁市| 肥西县| 绍兴县| 甘谷县| 元谋县| 修水县| 平乡县| 志丹县| 泰来县| 洛隆县| 友谊县| 宁远县| 宁蒗| 宁波市| 遵义市| 昔阳县| 湘潭市| 且末县| 阿城市| 贡觉县| 兴山县| 沙雅县| 万全县| 靖江市| 鹿邑县| 汉寿县| 上思县|