Return HTML 不带引号的字符串

Return HTML string without quotes

我正在开发一个允许以动态方式重用 HTML 代码的项目(很像 React)。为了创建模板,我需要 return 个内容为 HTML 的字符串。为了更轻松地使用 HTML,我想在不出错的情况下一起删除引号。

现在的样子:

let your_elem = new Element(() => {
   return (
      "<h1>Test</h1>"
   );
}

我想要达到的目标:

let your_elem = new Element(() => {
   return (
      <h1>Test</h1>
   );
}

我不确定 React 如何做到这一点。

React 使用 JSX 然后将其提供给转译器(例如 jsx-transform 或 Babel)以将其转换为浏览器可以理解的标准 javascript。

如果您不想使用转译器并能够将其直接传递给浏览器,更近一步是使用 backquote:

let your_elem = new Element(() => {
   return (`
      <h1>Test</h1>
   `);
}

这将允许您多行 javascript 也可以包含双引号的字符串文字:

let your_elem = new Element(() => {
   return (`
      <h1 class="foo">Test</h1>
      <div>Test</div>
   `);
}

它还允许您通过将 javascript 代码直接注入模板使其更加动态:

let className = "foo";
let your_elem = new Element(() => {
   return (`
      <h1 class="${className}">Test</h1>
      <div>Test</div>
   `);
}