什么是 HTML 模块?

ubu*_*god 7 html module

HTML 模块到底是什么?据我所知,它可能允许开发人员将 HTML 创建为模块,就像 ES6 模块与 JavaScript 一样。

但是,这些模块基本上都是像 Mustache、Handlebars 和 Pug 这样的模板吗?或者它就像类似模板系统的包装器,允许我们轻松地将 HTML 文件导入到另一个 HTML 文件中?

它会为避免使用利用 Web 组件的模板库铺平道路吗?

[更新] 这是我找到此内容的链接 - https://github.com/w3c/webcomponents/blob/gh-pages/proposals/html-modules-explainer.md

vin*_*yll 7

HTML 模块是将 HTML 文件导入文档的新建议。

\n\n

HTML 导入支持类似的功能,并允许导入 HTML 文件(最终包含自身 JS 和 CSS),但它已被弃用,并且JS 模块导入部分取代该功能。

\n\n

HTML 导入的目的是完成该部分,并使得再次导入 HTML 文件而不仅仅是 JavaScript 文件成为可能。\n现在您无法导入包含 HTML 的文件(同样,您可以在以下情况下执行此操作)meta rel=import href=myfile.html>不再支持 HTML时,您可以这样做)。\n如果你想这样做,你必须在处理 HTML 字符串之前先用 JavaScript 字符串编写它。

\n\n

该提案还引入了诸如import.meta.document引用要导入的内部文档之类的概念。

\n\n

请注意,这是一个提案,即使它可以插入规范中,但它应该由浏览器实现,并最终被社区采用,以便保留并成为稳定的功能。

\n\n

目前您可以使用的最接近的是Lego Web-Component 库,它允许将 HTML 作为模块包含并扩展本机 HTML 功能:

\n\n
<template>\n  <p>Hello World!</p>\n</template>\n
Run Code Online (Sandbox Code Playgroud)\n\n

用作:

\n\n
<script src="./dist/index.js" type="module"></script>\n<hello-world />\n
Run Code Online (Sandbox Code Playgroud)\n\n

示例取自https://github.com/polight/lego#hello-world

\n\n

让我们看看未来 HTML 模块的规范将如何发展\xe2\x80\xa6

\n