vue中filters 傳入兩個(gè)參數(shù) / 使用兩個(gè)filters的實(shí)現(xiàn)方法
先給大家介紹下vue中filters 傳入兩個(gè)參數(shù) / 使用兩個(gè)filters
.vue
傳入兩個(gè)參數(shù)
<van-col>{{第一個(gè)參數(shù)|formatVisitTime(第二個(gè)參數(shù))}}</van-col>
使用兩個(gè)filters
<van-tag plain :color="item.CreateTime(參數(shù))|formatVisitDate(filters方法)|formatVisitDateColor(filters方法)">{{item.CreateTime|formatVisitDate}}</van-tag>
format.js
export const formatVisitTime = (beginTime, finishTime) => { if (!beginTime) { return "--"; } if (!finishTime) { return formatDateTime(beginTime, 'hh:mm:ss') } beginTime = new Date(beginTime); finishTime = new Date(finishTime); let mss = Math.abs(beginTime.getTime() - finishTime.getTime()); let hours = Math.floor(mss / (1000 * 60 * 60)); let minutes = Math.floor((mss % (1000 * 60 * 60)) / (1000 * 60)); return hours + "小時(shí)" + minutes + "分鐘"; }
.ts
import format from "@/plugins/format"; @Component({ filters: { formatVisitTime(beginTime, finishTime) { return format.formatVisitTime(beginTime, finishTime); } } })
ps:下面看下Vue 中的 filter 帶多參
場(chǎng)景
在 vue 項(xiàng)目中,團(tuán)隊(duì)成員在模板中解析一個(gè) json 字符串,然后這個(gè)字符串來自于后臺(tái),所以是類型不安全,直接用 JSON.parse 就報(bào)錯(cuò)了,這里需要用 trycatch 下。
實(shí)際是,因?yàn)檫@個(gè)解析 json 字符串的方法是純函數(shù),且經(jīng)常用在模板中,所以作為 filter 合適,直接拷貝了其他項(xiàng)目的這個(gè)方法過來作為 fitlers 用,如下。
// omit other properties filters: { tryParseJsonString(jsonStr, defaultValue) { let ret = defaultValue; if (jsonStr) { try { ret = JSON.parse(jsonStr) || defaultValue; } catch (e) { console.warn('JSON格式不正確,解析失敗', e.message); } } return ret; } }, // ...
在模板中,可以綁定到 v-bind,使用如下
<template> <comp :images="li.value | tryParseJsonString([])" /> </template>
考慮到這個(gè) filter 使用頻繁,所以可以封裝進(jìn)全局 mixin,避免頻繁的引用。
參考 https://vuejs.org/v2/guide/fi...
總結(jié)
以上所述是小編給大家介紹的vue中filters 傳入兩個(gè)參數(shù) / 使用兩個(gè)filters的實(shí)現(xiàn)方法 ,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Vue Element前端應(yīng)用開發(fā)之常規(guī)的JS處理函數(shù)
在我們使用Vue Element處理界面的時(shí)候,往往碰到需要利用JS集合處理的各種方法,如Filter、Map、reduce等方法,也可以涉及到一些對(duì)象屬性賦值等常規(guī)的處理或者遞歸的處理方法,本篇隨筆列出一些在VUE+Element 前端開發(fā)中經(jīng)常碰到的JS處理場(chǎng)景,供參考學(xué)習(xí)。2021-05-05vue項(xiàng)目實(shí)現(xiàn)一鍵網(wǎng)站換膚效果實(shí)例(webpack-theme-color-replacer的使用)
換皮膚一般都是點(diǎn)擊一個(gè)按鈕彈出一些皮膚的選項(xiàng),選中選項(xiàng)后皮膚生效,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目實(shí)現(xiàn)一鍵網(wǎng)站換膚效果的相關(guān)資料,文中主要介紹的是webpack-theme-color-replacer的使用,需要的朋友可以參考下2023-02-02vue3.0中ref與reactive的區(qū)別及使用場(chǎng)景分析
ref與reactive都是Vue3.0中新增的API,用于響應(yīng)式數(shù)據(jù)的處理,這篇文章主要介紹了vue3.0中ref與reactive的區(qū)別及使用,需要的朋友可以參考下2023-08-08vue實(shí)現(xiàn)微信公眾號(hào)h5跳轉(zhuǎn)小程序的示例代碼
本文主要介紹了vue實(shí)現(xiàn)微信公眾號(hào)h5跳轉(zhuǎn)小程序的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08利用Vite搭建Vue3+ElementUI-Plus項(xiàng)目的全過程
vue3如今已經(jīng)成為默認(rèn)版本了,相信大多數(shù)公司已經(jīng)全面擁抱vue3了,下面這篇文章主要給大家介紹了關(guān)于利用Vite搭建Vue3+ElementUI-Plus項(xiàng)目的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07