Web组件的未来证明

时间:2015-12-02 13:42:35

标签: javascript html5 web-component

我目前正在开发一个新的WebApp,并对Web组件及其构建模块化应用程序的机会感到兴奋。但另一方面,Web组件的四个部分是否成为跨浏览器标准存在不确定性。 Mozilla最近宣布,他们不再从事html导入,到目前为止webkit只支持模板等等......

我知道有polyfills(例如webcomponents.js填补了这些空白),但我的任务是开发一个面向未来的应用程序,因此我将使用标准。

所以我的问题:我可以使用网络组件,因为它们肯定会成为标准吗?

4 个答案:

答案 0 :(得分:2)

尽管问题似乎过于宽泛且主要基于个人意见,但我认为这是一个很好的机会,可以公开支持和反对 Web Components 的更新论据,以支持更合理的决策。

首先,正如其他人已经说过的那样,无法预测未来,特别是在涉及技术变革时。即使是一些官方推荐的规范也可能在几年内过时,因为另一个甚至会更好。所以,在你做出决定之前,你应该问自己,你打算“预测”这个未来的期限

Web组件本身上,不再有单一规范(已经discontinued),而是some smaller specifications。简而言之,它们是:

  • HTML Templates:是最简单的部分,已经完成并very broadly supported。好奇地停止了 Web Components 规范,并成为part of the HTML5 spec
  • Shadow DOM:polyfill最难的规范(到目前为止,最“准备好”的事情是Shady DOM)。我很高兴看到它将如何标准化an agreement。截至2015年12月,W3C仍然表示该规范需要审核,而非实施。
  • Custom Elements:虽然非常重要,但浏览器开发人员仍有许多问题,尤其是在与DOM加载一起激活自定义实现时。截至2015年12月,W3C仍然表示该规范需要审核,而非实施。
  • HTML Imports:自2014年3月以来一直是工作草案,似乎非常有争议,因为它与ECMAScript 6 module loading重叠很多。

我强烈建议您通过in this nice blog post了解有关 Web组件的内容的更多信息@Axel Rauschmayer,这可以帮助您“更好地预测”。

尽管如此,我个人假装暂时离开Web Components ,但我会继续关注它,特别是因为Polymer Project声称它足够成熟用于生产。

答案 1 :(得分:1)

我已经在商业上使用网络组件大约6个月了,我相信编写和使用网络组件的最佳方式是使用ES2015(下一版本的JavaScript)。由于ES2015模板字符串,这不仅更容易实现,还意味着您不需要使用HTML导入或HTML模板。

当ES2015成为浏览器标准时,您还将在未来验证您的Web组件代码 - 您现在需要使用几个简单的步骤将ES2015转换为ES5,但只有在ES2015可用时才能删除此步骤所有浏览器。

如果您想了解更多信息,我认为本文提供了足够的详细信息,向您展示如何使用ES2015快速编写Web组件:http://www.revillweb.com/tutorials/web-components-with-es2015-es6/

答案 2 :(得分:0)

无法知道未来的标准。历史已经一次又一次地展示了一项有前途的新技术如何被放弃,因为游戏后期在基础设计方面存在问题,或者根本没有足够的采用者。这种情况发生在微软,谷歌,苹果和其他许多公司。

围绕将可能作为标准采用的技术设计您的应用程序是无法在未来证明您的应用程序的。很长一段时间,大约十年前,微软推动VB脚本作为Javascript的答案 - 如果你使用VB脚本,你将被困在重写你的网站。而不是围绕一种狡猾的新技术构建您的应用程序,而这可能是#34;普遍采用 - 你最好建立一个可靠的标准。

答案 3 :(得分:0)

" Web Components" 是一组技术。每个人都有不同的命运:

模板元素是W3C标准,是HTML5 recommendation的一部分,它在大多数现代浏览器中实现:Edge,Firefox,Chrome,Safari,Opera。

自定义元素现在是WHATWG规范,是HTML Living Standard的一部分。 它在Chrome和Opera中实现。它是在Safari上积极开发的,计划在Firefox中使用,并在Edge中进行考虑。

Shadow DOM 是WHATWG规范,是DOM Living Standard的一部分。包含在Chrome和Opera中,它是为Safari和Firefox积极开发的。由于大多数浏览器都使用Shadow DOM来显示一些特殊的用户控件(日期,范围,输入......),因此很可能会长时间保持。

HTML Imports proposed by Google并在Chrome和Opera中实施,被Firefox拒绝,而微软则考虑"他们,不像Safari。

注意:如果您想要跨浏览器兼容性,可以使用polyfills(Webcomponents.jsWebReflection)。

此外,您可以投票支持他们在Edge和Firefox上的开发。