繁体   English   中英

将 React 组件注入 html 页面

[英]Inject React component into html page

我正在尝试用 React 做一些事情,但我不知道我是否以正确的方式做这件事......

我创建了一个 React 组件(使用 create-react-app)。

我将 js 文件(构建后)放在 web 服务器上。

之后,在 html 页面上,当我单击按钮时,我插入 js 文件。 如果页面上存在具有特定 id 的 div,则加载该组件。

很酷,我为我所做的一切感到高兴,万岁 \o/

但在那之后,我试图删除组件(清空 div)并单击按钮重新加载,但没有任何反应......

当我单击按钮时调用的 function 删除脚本,清空 div 和重新插入脚本。 但是什么也没发生……我不知道为什么:/

任何帮助将不胜感激:D

提前谢谢

编辑:我解决了我的问题。 我正在删除脚本,假设重新注入它会重新加载组件,但它不会那样工作......

这是一个示例代码: https://codesandbox.io/s/blissful-fire-ytbj9?file=/public/index.html

我在 React 组件中写了一个 function 来渲染它。 我可以直接在 html 页面中调用这个 function,这样我就可以清空 div 并在单击重新加载按钮时重新加载组件。

看起来你所做的不是标准的,你必须在你的 web 应用程序中为你的 react 组件创建一个容器,然后像这样编写你的组件:

const rc = React.createElement;

class ReactExample extends React.Component {    
  render() {
    return rc(
      'button',
      { onClick: () => alert("Hello from ReactJS!") },
      'say hi'
    );
  }
}

ReactDOM.render(rc(ReactExample), document.querySelector('#reactContainer'));

将其保存在 js 文件中,然后将其导入您的 HTML 页面。

注意:如果需要,可以使用 JSX,但必须使用babel转换 JSX。

最后,导入react

用于生产:

<script src="https://unpkg.com/react@17/umd/react.production.min.js" crossorigin></script>

<script src="https://unpkg.com/react-dom@17/umd/react-dom.production.min.js" crossorigin></script>

开发:

<script src="https://unpkg.com/react@17/umd/react.development.js" crossorigin></script>

<script src="https://unpkg.com/react-dom@17/umd/react-dom.development.js" crossorigin></script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM