javascript - 如何将 ReactJS/build 文件夹添加到现有网站结构

标签 javascript html wordpress reactjs create-react-app

我已经构建了我的 Create React App 并将其编译为 /build文件夹。我还有一个网站(尤其是在 WordPress 上),我希望在其中添加我的应用程序。

我的问题是,我只能找到有关如何使用 index.html 将应用程序发布为单页 HTML 文档的文档。文件。我想以某种方式只包含应用程序 <body> 之间的部分如果可能的话。

当我有一个预先存在的 <div id="root"></div> 时会发生什么我的插件中的元素?我已经添加了 /build插件根目录中的文件夹。

生成的代码是

<head>
  <meta charset="utf-8">
  <link rel="shortcut icon" href="/favicon.ico">
  <meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
  <meta name="theme-color" content="#000000">
  <link rel="manifest" href="/manifest.json">
  <title>React App</title>
  <link href="/static/css/main.dd742552.chunk.css" rel="stylesheet">
</head>
<body>
  <noscript>You need to enable JavaScript to run this app.</noscript>
  <div id="root"></div>
  <script>
    !function(l){function e(e){for(var r,t,n=e[0],o=e[1],u=e[2],f=0,i=[];f<n.length;f++)t=n[f],p[t]&&i.push(p[t][0]),p[t]=0;for(r in o)Object.prototype.hasOwnProperty.call(o,r)&&(l[r]=o[r]);for(s&&s(e);i.length;)i.shift()();return c.push.apply(c,u||[]),a()}function a(){for(var e,r=0;r<c.length;r++){for(var t=c[r],n=!0,o=1;o<t.length;o++){var u=t[o];0!==p[u]&&(n=!1)}n&&(c.splice(r--,1),e=f(f.s=t[0]))}return e}var t={},p={2:0},c=[];function f(e){if(t[e])return t[e].exports;var r=t[e]={i:e,l:!1,exports:{}};return l[e].call(r.exports,r,r.exports,f),r.l=!0,r.exports}f.m=l,f.c=t,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(r,e){if(1&e&&(r=f(r)),8&e)return r;if(4&e&&"object"==typeof r&&r&&r.__esModule)return r;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:r}),2&e&&"string"!=typeof r)for(var n in r)f.d(t,n,function(e){return r[e]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var r=window.webpackJsonp=window.webpackJsonp||[],n=r.push.bind(r);r.push=e,r=r.slice();for(var o=0;o<r.length;o++)e(r[o]);var s=n;a()}([])
  </script>
  <script src="/static/js/1.a789a71a.chunk.js"></script>
  <script src="/static/js/main.5d390abf.chunk.js"></script>
</body>
</html>

我想,一个想法是使用具有特定宽度/高度的 iframe,但这会破坏应用程序的响应能力。

还有其他方法吗?非常感谢

最佳答案

当您使用 create-react-app 构建您的应用程序时,它会创建一个 index.html 文件,该文件在该特定 index.html 文件中使用您的应用程序。因此,例如,如果您在 <div id="root"></div> 中呈现您的应用程序它会将应用程序放在该 div 中。

如果您查看生成的 index.html 文件的底部,您可以看到您的 React 应用程序只是一个在 index.html 文件底部导入的 .js 文件。构建过程将所有内容捆绑到这个 .js 文件中。整个 React 应用程序都在那个 .js 文件中。

那么 .. 您可以做的是获取此 .js 文件并将其导入您要在 Wordpress 站点中使用的位置。你必须记住的一件事是,你必须有一个与你安装 React 应用程序的名称完全相同的 DIV。因此,如果你将它安装在一个名为 root 的 div 中,如下所示:ReactDOM.render(<App />, document.getElementById('root'));在将构建文件导入到的 html 文档中,您必须有一个名为 root 的 div。还要确保将您在 React 应用程序中使用的包含图像等的任何子文件夹放在正确的根文件夹中。

希望这一切都清楚了。 =)

关于javascript - 如何将 ReactJS/build 文件夹添加到现有网站结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53222218/

相关文章:

javascript - 由于 JS,CSS 未从正确的文件夹加载

javascript - JavaScript 中的提示对话框在之前编写的代码之前运行

html - 如何使一个div与其他div重叠?

css - 在 Wordpress 中指示文本链接的更好方法

javascript - onsubmit ="return formValidate():"如果 false 表单也会提交

html - 如何让站点根据用户的浏览器窗口自动缩放

html - AngularJS 1.5- <select> 元素在不正确的时间显示下拉列表(仅限 iOS 10)

javascript - 响应式菜单未显示 Uncaught TypeError : jQuery(. ..).on 不是 WordPress 网站中的功能

javascript - 调整 jQuery 图像大小以适应模式的问题

JavaScript 打印整个数组而不是单个元素