如何像jsx(react)那样在javascript的函数中返回html?

ibrsph3r  于 2023-01-24  发布在  React
关注(0)|答案(2)|浏览(192)

我想创建一个函数,并让它返回一个HTML,就像在react中一样(不使用react或jsx)

const func = () => {
  return (
    <h1>Hello World!</h1>
  );
}
drkbr07n

drkbr07n1#

不使用react或jsx
如果你不想使用JSX,那么很明显你不能使用JSX。你可以返回一个 * string *:

const func = () => {
  return '<h1>Hello World!</h1>';
}

document.querySelector('#test').innerHTML = func();
<div id="test"></div>

或者是一个元素:
一个二个一个一个

zwghvu4y

zwghvu4y2#

这里有一个解决方案

function createHTML(element, props, children) {
  const startTag = `<${element}`;
  const endTag = `</${element}>`;

  let htmlString = startTag;

  for (let prop in props) {
    htmlString += ` ${prop}="${props[prop]}"`;
  }

  htmlString += '>';

  if (children && Array.isArray(children)) {
    for (let i = 0; i < children.length; i++) {
      htmlString += children[i];
    }
  } else if (children && typeof children === 'string') {
    htmlString += children;
  }

  return htmlString + endTag;
}

相关问题