Moment.js究竟有多大?看下上图它和其它时间相关类库的对比就知道了。
Moment.js
有几个问题:
- 高度依赖于面向对象API,让它不能使用
tree-shaking
,这导致它体积大和性能方面的问题。 - 是可变的,且易产生bug。
- 复杂的面向对象API(加倍了可变的问题)。
如果你不使用时区,只是使用moment.js
几个简单的函数,会让你的应用变得很大。dayjs
有简单的核心,且API也很简单,所以很容易整合。date-fns
支持tree-shaking
和其他特性,在React
,Sinon.js
和Webpack
等工作的更好。
想要了解更多为什么及如何将moment.js
切换成其他类库的方案,详见此ISSUE
。
文中最大的亮点,是将moment.js
中主要的API与其他类库做了详细的对比,也展示了每个API的执行效率对比。强烈建议阅读原文。