微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vue项目里,利用es6,封装时间格式处理方法,简单demo

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格式,然后返回给

如果说,写的时候思路是从后往前,那么用的时候,就是从前往后

代码很简单,就几行而已,主要是为了体验整个流程

各位菜鸡,彼此彼此。

爱你哟

原文地址:https://blog.csdn.net/sucaiji/article/details/101066730

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐