Javascript 如何从客户端创建交互式(附加React to)预渲染的React应用程序?
我想向客户端显示一个预渲染的交互式应用程序(服务器只发送html) 我为一个测试创建了一个简单的react应用程序,只有一个按钮在按下时会显示一个警报对话框 然后我做了一个构建:Javascript 如何从客户端创建交互式(附加React to)预渲染的React应用程序?,javascript,reactjs,client,prerender,Javascript,Reactjs,Client,Prerender,我想向客户端显示一个预渲染的交互式应用程序(服务器只发送html) 我为一个测试创建了一个简单的react应用程序,只有一个按钮在按下时会显示一个警报对话框 然后我做了一个构建: npm run build 这在构建目录中创建了一个index.html文件,在打开时显示测试应用程序 这很好,但不是交互式的,所以我想我必须以某种方式附加React到它,并从客户端调用hydroge()。(这是正确的吗?水合物()在客户端也起作用吗?) 问题是我不知道应该如何调用hydrate() 这是正常调用
npm run build
这在构建目录中创建了一个index.html文件,在打开时显示测试应用程序
这很好,但不是交互式的,所以我想我必须以某种方式附加React到它,并从客户端调用hydroge()。(这是正确的吗?水合物()在客户端也起作用吗?)
问题是我不知道应该如何调用hydrate()
这是正常调用渲染的方式:
ReactDOM.render(<App />, document.getElementById('root'));
ReactDOM.render(,document.getElementById('root');
但是我不能在客户端使用hydroge(),因为客户端JS不知道
语法。因此,我的问题是如何在浏览器中调用水合物(),我应该为第一个参数而不是
ReactDOM.hydrate(,document.getElementById('root');
找到了解决方案,并将其留给其他人作为答案
根本不需要调用水合物(),一切都按原样工作。问题是生成的.js和.css文件在index.html中被引用,路径为/static/…
修复路径后,它立即工作,生成的应用程序是交互式的,按下按钮时会显示警报对话框。你不能在那里放点东西吗<代码>只能
。这正是ReactDOM将放在“根”元素上的组件。所以你可以把html。。。对吗?我试着把'
放在那里,但是屏幕上的应用程序内容被替换为字符串'
ReactDOM.hydrate(<App />, document.getElementById('root'));