我正在阅读React服务器端渲染的这个例子.它指出:
尝试查看页面源以确保已经呈现从服务器发送的HTML(使用校验和来确定是否需要客户端呈现)
好的,我看到了页面源,确实有一个data-react-checksum
属性:
当我在浏览器控制台中检查元素时,它还具有以下属性:
然后我决定检查我的网站也使用React服务器端渲染.而且我看到奇怪的事情.页面源具有
data-react-checksum
属性,但元素是控制台没有.页面来源:
安慰:
这是什么意思?什么
checksum
以及如何阅读/使用它?
1> Michelle Til..:当使用服务器渲染时,客户端上的React在内部使用校验和
ReactDOM.renderToString
来确定服务器的输出是否与客户端的输出匹配.如果是这样,React可以非常有效地透明地将现有DOM从服务器升级到客户端应用程序.如果它不匹配,则意味着在服务器上呈现的状态和props与在客户端上呈现的状态和props不同,并且React必须执行更昂贵的操作来初始化客户端应用程序.我检查了我的应用程序,似乎至少在某些版本的React中,一旦客户端应用程序启动,就会从元素中删除checksum属性,尽管它在页面的源代码中可见.
由于校验和是一种内部一致性机制,除非React检测到您的服务器校验和与客户端校验和不匹配,否则您不必担心它,在这种情况下它会通过控制台中的警告或错误告诉您.
推荐阅读
如何解决《如何在GsonJsonObject中检查"isEmpty()"?》经验,为你挑选了2个好方法。 ... [详细] 如何解决《TypeError:不可用类型》经验,为你挑选了1个好方法。 ... [详细] 如何解决《gitcheckout-*并跳过未跟踪的文件》经验,为你挑选了1个好方法。 ... [详细] 如何解决《无法将Firebase导入Swift类》经验,为你挑选了3个好方法。 ... [详细] 如何解决《Eslint:如何在Node.js中禁用"意外的控制台语句"?》经验,为你挑选了10个好方法。 ... [详细] 如何解决《launchd状态78是什么意思?为什么我的用户代理没有运行?》经验,为你挑选了3个好方法。 ... [详细] 如何解决《如何在序列化器中设置默认值?》经验,为你挑选了3个好方法。 ... [详细] 如何解决《将md5哈希值添加到mongo集合中》经验,为你挑选了1个好方法。 ... [详细] 如何解决《为什么使用multiDexEnabled(true)允许应用程序构建但不断崩溃?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《远程文件上传量角器测试》经验,为你挑选了1个好方法。 ... [详细] 如何解决《是否可以在"if语句"中嵌入"for循环"以在继续使用c++之前比较多个条件》经验,为你挑选了1个好方法。 ... [详细] 如何解决《TensorFlow中variable_scope和name_scope之间的区别》经验,为你挑选了2个好方法。 ... [详细] 如何解决《当一个.Swift文件的图标比另一个图标更暗时,它是什么意思?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《Perl中是否有关键字'with'?》经验,为你挑选了1个好方法。 ... [详细] 如何解决《使用swagger与android数据库》经验,为你挑选了0个好方法。 ... [详细] 如何解决《chrome中不支持getUserMedia()》经验,为你挑选了2个好方法。 ... [详细] 如何解决《Floydwarshall实施似乎缺少最短的路径》经验,为你挑选了0个好方法。 ... [详细] 如何解决《根据给定时区(本地时区)获取以毫秒为单位的时间》经验,为你挑选了1个好方法。 ... [详细] 吐了个 "CAO" !Tags | 热门标签RankList | 热门文章
- 1Haskell的Control.Concurrent.Async.mapConcurrent当前有限制吗?
- 2在Wordpress页面和帖子中插入PHP代码
- 3c#linq从linq返回一个多维数组
- 4128位结构或2个64位记录,用于提高性能和可读性
- 5从.bat调用Gradle会导致批处理执行停止
- 6如何在SQL Server 2005中更新视图
- 7在Haskell中对无限列表进行燕尾迭代
- 8如何在每个输出记录中显示结果集的总计数?
- 9JCabi方面@RetryOnFailure如何抛出异常
- 10iOS7:UICollectionView出现在UINavigationBar下
- 11Resharper重新格式化String.Format()参数
- 12无法在终端中找到XML架构命名空间错误的Spring NamespaceHandler
- 13RENAME语句实际上如何工作?
- 14在ArrayAdapter中重写getDropDownView时的样式问题
- 15从DynamoDB导出数据
- 16中型设备上的Bootstrap 3行中断
- 17在Django中搜索并获取匹配的LDAP用户列表
- 18InnoSetup - 代码签名证书
- 19如何从ASP.NET MVC属性中获取枚举值?
- 20如何将java泛型转换为Delphi
DevBox开发工具箱 | 专业的在线开发工具网站 京公网安备 11010802040832号 | 京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有