2018年5月2日,Dojo团队发布了Dojo第二版(Dojo 2)。Dojo是一种为JavaScript开发人员扩展开发过程提供帮助的工具箱。Dojo 2聚焦于开发人员对构建现代企业应用的需求,是在2007年发布Dojo 1的十多年后对Dojo的一次完全重写。Dojo 2使用TypeScript构建,采用了基于组件的架构和虚拟DOM。Dojo 2在工具上做了大幅的改进,其中包括一种新的CLI、集成的测试,以及一些连接Dojo与常见标准及工具的功能。
Dojo 2关注于对现代JavaScript巨大改进的集成,并提供给开发人员使用。Dojo的联合创始人和项目牵头者Dylan Schiemann给出了如下的介绍:
从很多方面看,Dojo 1必须要先行一步。而当前的问题,更多的在于如何将各种功能以一致的方式整合在一起。如何创建具有React那样的响应能力、但是能够更好地扩展到更大规模组件上的功能?如何能自然而然地而非磕磕绊绊地实现国际化(i18n)。
我们正力图打破各种框架之间的隔阂。我们一直在推进,已使Web组件系统深受Dojo 1 Widget的影响。所以这里要指出的是,我们需要一个基于响应式组件的系统,但并不希望将开发人员锁定到Dojo中。因此我们实现了一套工具,用于导入或导出Web组件,以供在Dojo中使用或是在Dojo之外使用。
工具是Dojo 2的一个主要关注点。Dojo 2提供了一种全新的CLI、集成的测试,以及一系列实现Dojo与常用标准和工具连接的功能。Dojo 2的Beta测试人员Rene Rubalcava撰写了一篇博客文章,介绍了该即将推出的新版本。文中特别指出,非常容易实现将Dojo Widget导出为可移植、符合标准的Web组件:“在REPO中运行命令dojo build --element=src/createTwitterShareElement.ts
,之后该组件就可以在Web页面中使用了”。当被问及在Beta测试中接触到的所有特性中他最喜欢哪个时,Rubalcalva进一步做了如下的解释:
Widget导出特性可以作为人们即刻开始使用Dojo 2的一个绝佳入口。这是一个很棒的特性!我之前从未在框架中看到这样的特性。在我看来,用户将会从该特性中受益匪浅。它使得开发人员可完全聚焦于组件的创建。CLI非常好用。
CLI提供了多种好特性,人们可以从中发现大量可用之处。其中之一,就是使用CLI为应用赋予主题。开发人员可以引入Dojo提供的一些默认的Widget,而CLI则提供了将主题应用到Widget和应用的工具。
Dojo中内建了一个基于CSS Modules的主题系统。所有内建Widget可主题化(Themeable)。根据Dojo的主题文档,可直接使用CSS Modules的组合(composition)功能实现主题的扩展。想要着手创建主题的开发人员,可遵循文档中给定的一个教程。
Dojo的前期版本因文档质量而饱受批评。因此在Dojo 2中,文档是核心团队的一个主要关注点。据Schiemann介绍:
只有通过了很好的测试和文档化,代码才能加入到主分支(Master)中。我们全面掌握人们学习并尝试以此方式记录文档的情况。我们在Dojo网站上推出了一个很好的系列教程,其中涵盖了人们想要做的头50到100件事情。
感兴趣的开发人员,可以从Dojo教程入手,就一些常见的问题及其解决方案查阅指南(Cookbook),或是直接深入翻阅文档。
对于熟悉React的开发人员,可能会发现Dojo 2相对比较易于上手。当被问及如何比较Dojo与其它一些现代JavaScript框架时,Schiemann表示,Dojo与React最为相似,但React遵循的原则是允许开发人员灵活选择所使用技术栈的各个部分,而Dojo 2对前端应用的各个部分都具有自身倾向性的默认设置。Rubalcava对此给出了进一步的解释:
React是一个很好的软件库,非常棒的UI框架,并且十分灵活。但是对于团队工作,同样的灵活性会使新加入的团队成员难以融入。而使用Dojo 2时,它支持JSX,团队成员将具有十分类似的虚拟DOM体验。当在团队环境中合作开发时,对所有内容的封装将使新团队成员很容易上手。
Dojo 2是受JS基金会支持的一个开源项目。JS基金会还为jQuery、webpack和lodash等关键JavaScript项目提供法律上的和管理上的支持。有意参与Dojo开发的开发人员,可参考给出在GitHub上的贡献指南,或是在Dojo Gitter Channel上与团队和社区开展直接的交流。
查看英文原文: JS Foundation Announces Dojo 2.0 Release
转自 http://www.infoq.com/cn/news/2018/05/js-foundation-announces-dojo-2