momentjs太笨重,来试试这个库吧

moment.js开发时是大家处理日期对象的利器。大量的api,简便时区和国际化支持。

而现在他的作者都觉得他太大了,不建议在新项目中使用它。

 

让我们来看看为什么?

1.太大了200多k的体积,即便在压缩之后还有60多k的大小。对于追求首屏加载的网页来说太慢了。

2.处理速度太慢了,格式化时间用时长。由于moment为了兼容老版本的浏览器,比如IE8(我呸),未能使用最新的api,处理速度慢也是理所应当。

3.可变的。多人共同开发的时候,极易出错。

const one = new moment();
const two = one.add(1, 'days')

console.log(one); //Wed Sep 16 2020 17:31:28 GMT+0800
console.log(two); //Wed Sep 16 2020 17:31:28 GMT+0800

4.很难调试。这里大家还可以试试其他的,我记得只有"",NaN,null时momentcai'才会返回undefined。

moment(undefined) //Tue Sep 15 2020 17:33:00 GMT+0800

这一旦后端没返回,莫名奇妙的错误能让你查很久。

所以来看看这个库吧,date-fns(https://github.com/date-fns/date-fns#readme)。

 

  • 现代的: 可以在webpack, Browserify, or Rollup中使用,也tree-shaking(用到什么打包什么).
  • 原生时期对象: 使用原生对象,类型安全。
  • 纯函数和不可变:使用函数式编程,总是返回一个日期对象。
  • TypeScript & Flow:支持ts和flow.js
  • 轻量的: 大小只有20几k,而这还没有tree-shaking
  • I18n: 国际化

大家有没有对这个包开始感兴趣了。

 

不过以下几种情况的话,大家还是老老实实用回moment

  1. 你在维护老项目
  2. 你需要适配IE8及其以下浏览器
  3. 使用的组件库中日期组件等是基于moment设计的
  4. 你开的应用是极其复杂的时间的应用,为了更好的依赖支持,还是建议你使用moment。

 

当然反过来说,如果你追求极致的轻量,还可以试试day.js,只有3Kb。对SEO和加载会非常有帮助。

关注我给大家带来更多前端有趣的知识。

#前端##moment##程序员##JavaScript#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值