从Moment迁移到Dayjs,优化您的前端应用程序

并且存储库指出它具有以下功能
→熟悉moment.js API
→可链接且不可变
→本地化即i18n(国际化)支持

因此,我们开始了迁移,我们意识到每次使用day时都必须删除以下内容:从“ dayjs”导入dayjs;
导入'dayjs / locale / de';

dayjs.locale('de');这似乎可行,尽管需要为创建的每个dayjs实例完成。我们继续进行,但是dayjs存在两个不同的问题:→无法用格式初始化
→每次导入模块时都必须进行语言环境分配使用FormatInitialization为此,dayjs提供了一个名为AdvancedFormat的插件,该插件扩展了dayjs的功能,类似于moment.js从“ dayjs / plugin / advancedFormat”导入AdvancedFormat;

dayjs.extend(AdvancedFormat);尽管我们又处在同一圈,每次必须导入和附加插件。发生这种情况的主要原因是节点模块在单独的范围内执行并公开了仅导出。从本质上讲,dayjs几乎是不可变的并且可树化,并且其实例不会改变其他实例的行为。每次都准备使用dayjs为了解决此问题,我们采取了以下方法:从'dayjs'导入dayjs;
导入'dayjs / locale / de';
从“ dayjs / plugin / advancedFormat”导入AdvancedFormat;

dayjs.locale('de');
dayjs.extend(AdvancedFormat);

导出默认的dayjs;现在将其另存为services / dayjs;我们制作了自己的dayjs服务,该服务已经进行了本地化和修补,可以进行高级格式初始化。现在,代替使用它,而不是从'dayjs'中导入import dayjs;我们这样做:从'services / dayjs'中导入dayjs;

请注意,为了使上述导入正常进行,我们在Web Pack配置中添加了别名,如下所示:
别名:{
服务:“ src / javascript / services”,
},

结论Moment.js是一个很棒的库,它有助于使使用日期进行开发变得更容易,尽管现在是分开的时候了。你们在JavaScript中使用什么进行日期对象操作?与我们分享您的经验。通过评测?或在Twitter上@patel_pankaj_和@ time2hack告诉我您对本文的看法,如果您认为本文有帮助,请与他人分享。订阅新帖子的邮件列表,下次再见。

  • 由flaticon.com的平面图标制作的图标
  • Curtis MacNewton在Unsplash上​​的照片

最初于2019年11月13日发布在https://time2hack.com。
          
          
          
          

          

          
          
          
        

资讯来源:由0x资讯编译自HACKERNOON。版权归作者所有,原文链接:https://hackernoon.com/optimize-your-front-end-applications-by-migrating-from-moment-to-dayjs-gh2b3xio。未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢