鍍金池/ 問答/HTML5  HTML/ vue每個(gè)頁面都會(huì)用到一個(gè)函數(shù),但我不想一個(gè)個(gè)引入

vue每個(gè)頁面都會(huì)用到一個(gè)函數(shù),但我不想一個(gè)個(gè)引入

一個(gè)時(shí)間戳的函數(shù),很多頁面都會(huì)用到

//HTML
{{ scope.row.createTime|formatDate }}

//引入js
import {formatDate} from '@/assets/js/date.js'

//過濾器
filters:{
    formatDate(time) {
        var date = new Date(time);
        return formatDate(date, 'yyyy-MM-dd hh:mm:ss');
    },
}

每次這個(gè)頁面需要用到時(shí)間戳,我就會(huì)把代碼復(fù)制過來,特別麻煩,有好的解決方法嗎?

回答
編輯回答
乖乖噠
  1. mixin
  2. extend
  3. Vue.filter
2017年9月15日 22:29
編輯回答
舊時(shí)光
2017年7月23日 19:12
編輯回答
尛憇藌

也可以這樣,在main.js里面將函數(shù)綁定在vue原型上。

Vue.prototype.formatDate=(time)=>{
    var date = new Date(time);
    return formatDate(date, 'yyyy-MM-dd hh:mm:ss');
    }
2017年1月20日 15:13
編輯回答
入她眼

使用全局過濾器

2018年7月30日 20:25
編輯回答
拼未來

全局filter啊

2018年1月4日 11:59
編輯回答
久舊酒

在main.js 中 注冊(cè)全局的過濾器

Vue.filter('formatDate', function(time){
  var date = new Date(time);
        return formatDate(date, 'yyyy-MM-dd hh:mm:ss');
        })
2017年8月16日 11:32
編輯回答
落殤

方案1、后端傳格式化過的時(shí)間
方案2、既然用了過濾器,那為何不用全局的過濾器呢。vue文檔:過濾器

2018年9月9日 09:53
編輯回答
使勁操

方法很多,按照自己認(rèn)為最優(yōu)的方式選擇。
可以用全局過濾器,也可以用全局混入。
如果這兩個(gè)都不熟,或者不太清楚怎么用,可以將你需要用到的這段代碼寫成一個(gè)util工具,也就是一個(gè)util.js文件。

export default {
  formatDate(time){
    
  }
}

然后在main.js里邊把它掛載到全局:

Vue.prototype.$utils = utils;

然后,在你需要的地方直接用就可以了。

this.$utils.formatDate(time)
2018年5月13日 12:48
編輯回答
拽很帥

用官網(wǎng)上的全局方法
圖片描述

寫好自己的過濾器,再去main.js主界面加載全局文件Global.js
圖片描述

然后在自己需要該filter的界面,加入過濾器名字
圖片描述

最后,我這demo效果圖
圖片描述

2017年7月4日 15:50