如何让我的webapp渲染服务器端并发送只准备使用的html到客户端,如果客户端没有下载main.js文件呢?如何在第一次加载ReactJS时加载轻量级html?
0
A
回答
2
在服务器上,使用React.renderToString
(https://facebook.github.io/react/docs/top-level-api.html#react.rendertostring)和相同的组件JSX和相同的道具。然后,在您的服务器呈现的模板中,将生成的标记字符串放置在您安装React组件客户端的相同容器元素中。
React组件在给定相同道具的浏览器和服务器上会生成相同的标记。在浏览器中反应足够智能(通过data-react-id
属性的值)可以识别组件已经在服务器上呈现为字符串并在初始页面加载时传递给浏览器。所以,它不会再渲染它 - 它只会连接组件的事件。
如果您的HTTP服务器不是基于节点的,您可以使用简单的消息传递实现(例如ZeroMQ或Redis pub/sub)将呈现请求发送到在同一台服务器上运行的小型节点脚本。此脚本应具有对使用客户端的相同JSX组件的文件系统访问权限。节点脚本应接受组件JSX和一个props
对象的路径,并将React.renderToString
的输出返回到主HTTP服务器以包含在模板中。
相关问题
- 1. 仅在第一次加载时加载页面的一部分
- 2. 在第一次加载时自动加载javascript更快
- 3. 在需要时加载库,而不是第一次加载?
- 4. 如何在html中加载时只追加一次adeks
- 5. 如何在等待渲染时加载加载Reactjs
- 6. serviceworker第一次不加载
- 7. 第一次加载字体时页面加载不了
- 8. Angular.js:第一次加载浏览器时阻止视图加载?
- 9. 第一次加载新的SKScene时滞
- 10. 如何加载HTML和CSS第一次和图片,JavaScript等后?
- 11. tinymce setcontent仅在第二次加载时加载
- 12. 如何在第一次加载时触发验证
- 13. UITableViewController在第二次加载时崩溃
- 14. JSTREE在第二次加载时失败
- 15. SelectItem在UICollectionView上第一次加载
- 16. 毕加索在第一次来电时不会加载图像
- 17. 毕加索图像未在第一次运行时加载
- 18. jQuery UI在第一次加载时位置错误,第二次加载时出错正确
- 19. 如何在第一次加载活动时从不同的类设置变量?
- 20. WordPress的第一次加载很好,但第二次加载失败
- 21. Twitter部件仅在第一次加载(清除缓存)时加载
- 22. 仅在第一次使用Cookies加载页面时才显示加载动画?
- 23. 第一次在iPhone上加载应用程序时加载到iPhone上
- 24. Firebase和picasso在第一次加载时没有加载用户信息
- 25. Page_PreRender在会话的第一次加载时触发两次
- 26. 第二次打开MS Access 2007时加载项不加载
- 27. 如何在Webkit中增量加载html?
- 28. 如何加速第一次加载angularJs 4?
- 29. Jquery第一次加载/硬刷新加载问题
- 30. JQuery的加载()第一次没有加载页面