在使用 Reactjs 的同构应用程序中,您需要将服务器上呈现的相同初始状态传递给客户端(然后客户端将通过事件绑定等“补充”应用程序)。
我见过两种传递初始状态的方法——
为窗口设置全局变量:
<script>
window.initialState = {{JSON.stringify(initialState)}} ;
</script>
或者将其作为 JSON 对象传递:
<script id="initial-state" type="application/json"> {{JSON.stringify(initialState)}}</script>
两者都可以从应用程序中的任何位置轻松检索。使用其中一种比另一种有什么优势吗?
后者避免了全局变量,前者避免了 DOM 查找。我会选择前者,因为它需要更少的代码。
一个问题是您是否有</script
在 JSON 中,它可能允许注入或意外错误。为了防止这种情况,你可以替换<
with \u003c
.
<script>
window.initialState = {{
JSON.stringify(initialState).replace(/</g, '\\u003c')
}};
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)