资讯专栏INFORMATION COLUMN

JS使用技巧2——momentjs太重了吗?试试dayjs和miment吧

KaltZK / 2300人阅读

摘要:方便灵巧,功能强大。唯一的缺点是,对于前端来讲,它的包太太太太太大了。我是的重度用户,但它的大小时刻都在折磨人。所以,开源社区有了一些精简的方案。的使用方法,也和基本一致。其实对于绝大部分的时间操作场景,和更符合使用要求。

关于时间的操作,一直在使用momentjs这个库。方便灵巧,功能强大。唯一的缺点是,对于前端HTML来讲,它的包太太太太太大了。

我是momentjs的重度用户,但它的大小时刻都在折磨人。虽然方便高效,可这动辄200K的大小,对于首页加载速度来讲简直就是一场灾难。所以,开源社区有了一些精简的方案。如dayjs和miment。

dayjs

dayjs本身就是对标momentjs进行开发的,看作者的官方介绍:

Day.js is a minimalist JavaScript library that parses, validates, manipulates, and displays dates and times for modern browsers with a largely Moment.js-compatible API. If you use Moment.js, you already know how to use Day.js.

它的用法非常简单。

dayjs().startOf("month").add(1, "day").set("year", 2018).format("YYYY-MM-DD HH:mm:ss");

是不是很momentjs很相似?不,其实它们就是一模一样的。dayjs的API和moment几乎一模一样,所以如果想要替换到现有的momentjs代码,直接替换为dayjs即可,调用语句绝大部分情况下可以一字不改。

dayjs的大小有多少呢?2KB。再想想momentjs的大小。

miment

miment同样也是一个极简的时间处理库,压缩后的代码甚至达到了1KB左右,比dayjs还小。

与包大小相应的,作者团队只保留了momentjs中核心方法,但其实这些方法在普通场景下已经足够。

miment的使用方法,也和momentjs基本一致。例如:

miment().add(1, "YYYY").add(2, "MM").add(-3, "DD") // 增加 1 年 2 个月又减回 3 天

miment().isBetween("2000-01-01","2020-01-01") // true

miment().isBefore("2000-01-01") // false

miment().format("YYYY年MM月DD日 星期ww") // 2018年04月09日 星期1 *周日对应星期0*

想要取得多带带的年月日,更简单

miment().format("YYYY") // 2018
miment().format("MM") // 04
miment().format("DD") // 09
miment().format("hh") // 23
miment().format("mm") // 57
miment().format("ss") // 16
miment().format("SSS") // 063
miment().format("ww") // 1
miment().format("WW") // 一
结语

对于momentjs,大部分开发者都是又爱又恨,又或者大觉不爱。其实对于绝大部分的时间操作场景,dayjs和miment更符合使用要求。尤其对于非SSR的场合,想想那精简近200KB的首屏渲染速度,真的是非常有吸引力。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/108837.html

相关文章

  • moment太重? 那就试试miment--一个超轻量级的js时间库

    介绍 Miment 是一个轻量级的时间库(打包压缩后只有1K),没有太多的方法,Miment的设计理念就是让你以几乎为零的成本快速上手,无需一遍一遍的撸文档 由来 首先 致敬一下Moment,非常好用的一个时间库,我本身也是Moment重度使用者,用习惯了Moment,一碰到需要处理时间的需求,立马Moment,不过有时候想想,Moment给我们提供了那么多的功能,但是我们天天用的,也就那么一两个...

    wwolf 评论0 收藏0
  • moment太重? 那就试试miment--一个超轻量级的js时间库

    介绍 Miment 是一个轻量级的时间库(打包压缩后只有1K),没有太多的方法,Miment的设计理念就是让你以几乎为零的成本快速上手,无需一遍一遍的撸文档 由来 首先 致敬一下Moment,非常好用的一个时间库,我本身也是Moment重度使用者,用习惯了Moment,一碰到需要处理时间的需求,立马Moment,不过有时候想想,Moment给我们提供了那么多的功能,但是我们天天用的,也就那么一两个...

    summerpxy 评论0 收藏0
  • moment太重? 那就试试miment--一个超轻量级的js时间库

    介绍 Miment 是一个轻量级的时间库(打包压缩后只有1K),没有太多的方法,Miment的设计理念就是让你以几乎为零的成本快速上手,无需一遍一遍的撸文档 由来 首先 致敬一下Moment,非常好用的一个时间库,我本身也是Moment重度使用者,用习惯了Moment,一碰到需要处理时间的需求,立马Moment,不过有时候想想,Moment给我们提供了那么多的功能,但是我们天天用的,也就那么一两个...

    ls0609 评论0 收藏0
  • ⏰Day.js 2kB超轻量时间库 Moment.js一样的API

    showImg(https://segmentfault.com/img/bV9wV7?w=1952&h=712);Moment.js 是一个大而全的 JS 时间库,很大地方便了我们处理日期和时间。但是 Moment.js太重了(200k+ with locals),可能一般项目也只使用到了她几个常用的API。虽然社区也有几个轻量的时间库,要想迁移过去又会增加新的学习和迁移成本。 如果能有一个和 ...

    CoreDump 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<