vue项目里,利用es6,封装时间格式处理方法,简单demo
本来今天是学了axios的请求拦截,通过拦截器在headers里加token,从而使每次请求都能被后台进行登录状态验证(如果后台需要的话)。
在学的过程中,发现教程是通过es6的import export 来封装方法及导出导入使用的。
因此我干脆照猫画虎地,封装一个时间格式处理的方法,主要是学习这个思路。
(之后我再写一下封装axios实例,思路基本一致。再之后就可以写登录、验证的思路?)
先给大家看一下文件结构。
我在src目录下,建了两个文件夹 libs 和 api
顾名思义
libs 用来存放方法的具体代码
api 则存放 调用这些方法 的入口(或者说api?)
其中libs里的 timeHandle.js 及 api里的 getTime.js 就是我这次写的文件(其他的都雨女无瓜)
先写timeHandle.js 也就是具体方法。
// 封装处理时间格式的方法。 然后导出到api/getTime.js
class TimeHandle{
// 将接收到的参数(time) 转换成 年-月-日 格式
toymd(time){
return time.getFullYear() + '-' + ((time.getMonth() + 1)<10? '0'+(time.getMonth() + 1):(time.getMonth() + 1)) + '-' + (time.getDate()<10? '0'+time.getDate():time.getDate() )
}
}
export default new TimeHandle // 导出该方法
接下来写 getTime.js ,也就是将timeHandle导出来的方法再封装一次,或者说多加一道流程。
// 这里封装成 时间格式处理 的入口
// 从libs/timeHandle.js 导入时间处理方法
import timeHandle from '../libs/timeHandle';
// 导出入口。 在项目中import {getTime} 然后就可以直接 getTime(传入时间)进行处理了
export const getTime = (time) => {
return timeHandle.toymd(time)
}
最后再在组件里导入、使用(随便哪个组件都可以啦,我就不把整个组件贴上来了)
// 这是组件里面
import {getTime} from '@/api/getTime.js'
export default {
methods:{
test(){
let time = new Date()
let result = getTime(time)
console.log(time) //你会打印出来 类似 Thu Jul 06 2019 00:00:00 GMT+0800 (中国标准时间)
console.log(result) // 你会打印出来 2019-06-06
}
}
}
可能你会有个疑问,为什么还要多一个api文件夹呢? 我在libs里写好timeHandle.js文件,同时导出。
在需要的组件里导入,不也可以吗?为什么要多出一个api及getTime.js,多转一到手呢?
主要是考虑,未来的可能性。
时间格式是有很多的,2019-06-06是我们现在用到的,以后呢?会不会我只想要06-06? 或者我想要2019-06-06 18:30?
那样就会产生许多方法,这时候他们统一导入api的getTime.js里,由getTime.js作为【时间格式处理方法】的统一入口,会不会好一点?
整个思路其实就是
1.在组件中的methods里,某个方法中。 使用api.js导出的getTime方法(并向其传值)
2.api.js中的getTime方法则调用timeHandle的toymd方法,并向其传值
3.最后timeHandle.js文件里的 toymd被调用后,将接收到的参数,处理成y-m-d格式,然后返回给
如果说,写的时候思路是从后往前,那么用的时候,就是从前往后
代码很简单,就几行而已,主要是为了体验整个流程
各位菜鸡,彼此彼此。