Web 组件无需在 Javascript 中编写 HTML

Vig*_*.V. 5 html javascript components web-component

我一直在阅读和尝试一些据我所知可用的 Web 组件实现,但我不喜欢的是它们在 Javascript/JSX/Typescript 中为组件编写 HTML 代码。

我经历过的框架/实现

Polymer:Polymer 1 和 2 感觉很好,因为他们使用 HTML 导入完成所有定义,并且将 HTML 和 JS 代码分开。但是,对于 Polymer 3,他们也采用类似 React 的语法,在 JS 中编写 HTML,这是我不喜欢的。

Vanilla WebComponents:令人惊讶的是,即使是 Vanilla Web 组件规范也像 React 在 JS 代码中包含 HTML: https: //www.webcomponents.org/introduction再次,这是我不喜欢的。

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

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

是否有任何实现不需要在 Javascript 中编写 HTML 来使用 Web 组件?

我这样做的主要原因是关注点分离,我无法很好地理解它,因为传统上,网络似乎很好地将骨架、样式和 DOM 操作分离为 HTML、CSS 和 JS 文件,现在,我们将所有内容组合在一起,这感觉对我来说很混乱。

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

Sup*_*arp 2

使用普通 Web 组件,您可以决定将 HTML、Javascript 和 CSS 分成不同的文件。由你决定!

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

HTML 内容放入<template>元素中,并在创建自定义元素时进行克隆以将其插入到该元素中。

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

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