1、先建立个文件夹filters>filters.js ,或者你自己随便定义就行! 到时候引入!
filters.js 随便放入一个函数
export function bartimeStamp(value,type) { if(value) var dd = new Date(value*1000); var y = dd.getFullYear(); var m = dd.getMonth() + 1; var d = dd.getDate(); var h = dd.getHours(); var i = dd.getMinutes(); var s = dd.getSeconds(); m = m < 10 ? '0' + m : m; d = d < 10 ? '0' + d : d; h = h < 10 ? '0' + h : h; i = i < 10 ? '0' + i : i; s = s < 10 ? '0' + s : s; if(type) { return y + '-' + m + '-' + d + ' ' + h + ':' + i + ':' + s } else { return y + '-' + m + '-' + d } }
然后再main.js中引入
import * as filters from './filters/filters.js'// * as必须携带 Object.keys(filters).forEach(key => { Vue.filter(key, filters[key]) }) // 主要要在创建 Vue 实例之前全局定义过滤器 const app = new Vue({ ...App })
注:过滤器只可以定义方法!
页面中使用,上面定义的是时间戳处理,所以我们随便测试下,时间戳的返回!
{{1569231007 | bartimeStamp}}
他还可以连续执行!
意思是把第一个formatDate的执行结果,再传入第二个 ....第三个....
{{1227772717 | formatDate | formatDate }}
同理,我们还可以根据这个制作全局方法!
随便新建一个js文件
suibian.js
export function GoTab(e) { let { url } = e.currentTarget.dataset uni.switchTab({ url: url }) } export function GoNav(e) { let { typeid, channelid, typename, url } = e.currentTarget.dataset uni.navigateTo({ url: url+'?typeid=' + typeid + '&channlid=' + channelid + '&typename=' + typename }); }
然后main.js引入
import * as suibian from './utils/suibian.js' Object.keys(suibian).forEach(key => { Vue.prototype.key=key }) // 或者可以直接下面这样 // Vue.prototype.suibian =suibian // 但是这样的话如果需要引入,则需要suibian.GoTab 来使用了!
这样我们就把suibian.js内的方法都挂载到全局了!