没有在Javascript中编写HTML的Web组件

时间:2018-05-05 09:18:32

标签: javascript html components web-component

我一直在阅读并尝试了几个可用于我的知识的Web组件实现,我不喜欢的是他们在Javascript / JSX / Typescript中为组件编写HTML代码。

我完成的框架/实施

聚合物:聚合物1& 2感觉很好,因为他们使用HTML导入进行了所有定义,并将HTML分开并将JS代码分开。但是,对于Polymer 3,它们也像React一样在JS中编写HTML语法,我不喜欢。

Vanilla Web组件:令人惊讶的是,即使是vanilla Web组件规范也就像React在JS代码中使用HTML一样:https://www.webcomponents.org/introduction这是我不喜欢的东西。

模板:虽然这个工具看起来很有前途,但我仍然有同样的问题,我必须编写JS中组件所需的HTML,然后将其转换为vanilla JS。

X-Tag:同样的问题,JS中的HTML。

是否存在我们不在Javascript中编写HTML以使用Web组件的实现?

我背后的主要原因是关注点分离,我无法很好地解决这个问题,因为传统上网络似乎很好地将骨架,样式和DOM主要内容分离为HTML,CSS和JS文件而现在,我们将所有的东西组合在一起,让我觉得一团糟。

这是我不喜欢React的主要原因之一,我们在javascript中编写HTML-Like语法。

1 个答案:

答案 0 :(得分:2)

使用vanilla Web Components,您可以决定将HTML,Javascript和CSS分离为不同的文件。这取决于你!

我开发了一些完整的应用程序,其中每个组件(自定义元素)都使用3个文件定义:HTML,JS和CSS。

HTML内容放在<template>元素中,并克隆为在创建时插入自定义元素。

HTML文件可以在运行时通过HTML Imports或fetch()XMLHttpRequest对象导入。 或者,它可以在构建时与Javascript和CSS合并(自动),只构成一个要下载的文件。

我不知道其他框架,但我认为对于其中一些框架来说也是可能的。