首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我无法将PreactX组件直接呈现为document.body

我无法将PreactX组件直接呈现为document.body
EN

Stack Overflow用户
提问于 2019-07-02 08:21:21
回答 1查看 130关注 0票数 1

请参阅这个最低限度的例子:

或守则:

HTML

代码语言:javascript
运行
复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale=1, shrink-to-fit=no"
    />
    <title>React App</title>
  </head>

  <body>
    <div id="root"></div>
  </body>
</html>

JS

代码语言:javascript
运行
复制
/** @jsx h */
import { h, render } from "preact";

function App() {
  return <div className="App">Cool</div>;
}

render(<App />, document.body);

呈现的结果如下:

结果

代码语言:javascript
运行
复制
<body>
  <div id="root" class="App">Cool</div>
</body>

我想保留我的#root dom元素为空,但是PreactX接管了对dom节点的控制,为什么会发生这种情况?

我想直接将我的PreactX组件呈现到document.body中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-12 22:28:18

Preact基本上是将document.body (<div id="root"></div>)的原始内容与新内容<div className="App">Cool</div>进行区分和合并,给出如下结果:

<div id="root" class="App">Cool</div>

如果进入public/index.html并删除第13行:<div id="root"></div>,您将看到生成的html为now:<div class="App">Cool</div>

TLDR;您正在将preact安装到document.body,它已经包含了内容,preact是将这些内容与您的'App.js‘组件进行比较和合并。在index.html中清空body标记,您就可以了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56848193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档