Javascript React服务器和React客户端之间的区别

Javascript React服务器和React客户端之间的区别,javascript,node.js,reactjs,react-server,Javascript,Node.js,Reactjs,React Server,我一直在研究react.js框架。我还没有完全理解客户端渲染和服务器端渲染之间的区别(尽管努力寻找明显的区别)。因此,我非常感谢善良的灵魂为这个话题提供清晰明了的解释 顺便说一句,我来自.NET背景,因此我仍在尽最大努力调整我的想法,使之适应更面向JS的编程方式 谢谢 在服务器端渲染中,当您处理web服务器时(想想写一些C#.Net或其他什么),您没有浏览器中的文档或窗口。所以react所做的是在内存中构建一个“虚拟”DOM,然后它可以实际地将其转换为一个带有特殊属性的HTML字符串,并在浏览器

我一直在研究react.js框架。我还没有完全理解客户端渲染和服务器端渲染之间的区别(尽管努力寻找明显的区别)。因此,我非常感谢善良的灵魂为这个话题提供清晰明了的解释

顺便说一句,我来自.NET背景,因此我仍在尽最大努力调整我的想法,使之适应更面向JS的编程方式


谢谢

在服务器端渲染中,当您处理web服务器时(想想写一些C#.Net或其他什么),您没有浏览器中的文档或窗口。所以react所做的是在内存中构建一个“虚拟”DOM,然后它可以实际地将其转换为一个带有特殊属性的HTML字符串,并在浏览器中获取这些属性。然后使用该html字符串响应HTTP请求。然后,当您在浏览器中加载react应用程序时,它将选择服务器停止的位置,并在浏览器内存中构建另一个“虚拟”DOM。如果操作正确,则在此过程中根本不需要操作文档,因此浏览器会像加载静态html文件一样加载此动态页面。但是现在您有了一个live React虚拟DOM,应用程序可以导航到不同的页面,或者使用React令人惊叹的渲染引擎以其他方式进行更新,只需很少的工作即可为您提供非常优化的web体验


要做到这一点,需要将大量NPM包拼凑在一起,并试图找到与您的用例最匹配的示例,这可能会让来自.NET的人感到有点沮丧,因为在.NET中,所有内容都真正整合到一个框架中。有很多不同的工具和技术(LIT,TrpILE,捆绑,测试,构建等)来考虑你的每一个应用程序,它可能需要一些时间和摆弄,使所有的工作在一起。基本上,这就是你现在为获得最佳网络应用所付出的代价。这些工具所能做的令人惊讶,但肯定有一个陡峭的学习曲线开始。不过这里的人总是很快就能帮上忙

这是一个很小的区别。Client-side=在浏览器中加载JS脚本后,发送带有脚本标记的html以构建DOM。Server-side=也这样做,但是通过在服务器上呈现初始DOM字符串,在第一个请求中发送更完整的DOM。