网站首页 > 开源技术 正文
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
- 你在维护老项目
- 你需要适配IE8及其以下浏览器
- 使用的组件库中日期组件等是基于moment设计的
- 你开的应用是极其复杂的时间的应用,为了更好的依赖支持,还是建议你使用moment。
当然反过来说,如果你追求极致的轻量,还可以试试day.js,只有3Kb。对SEO和加载会非常有帮助。
关注我给大家带来更多前端有趣的知识。[呲牙]
猜你喜欢
- 2024-10-16 上手protobuf:一文掌握protobuf的使用
- 2024-10-16 一文读懂微前端架构(微前端的原理)
- 2024-10-16 我对Vue.use() 的简单理解(vue中的use)
- 2024-10-16 一致性、模块化、高性能的 JavaScript 实用工具库
- 2024-10-16 前端开发十大最常用的ES6特性(前端开发十大最常用的es6特性是什么)
- 2024-10-16 想在线看电影就变的越来越难 优秀开源在线BT免费开源播放器
- 2024-10-16 宇宙厂:如何找到未使用 JS/CSS 并移除?
- 2024-10-16 一个前端的“自我成长”话题(前端如何提升自己)
- 2024-10-16 Facebook发布React v16.0,新旧浏览器都可以尝鲜!
- 2024-10-16 【黄金圆环】在研发领域的实践分享
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)