如何在react
如何从Express
后端向客户端React
组件发送JS对象?
我可以通过在res.locals
或cookies
中设置它们来发送简单变量,但对于较大的对象,我该如何做?
不支持API,因为它导致页面加载,然后请求使用户在屏幕上等待。服务器启动后,我的详细信息即可使用。
代码流程简介:
它是一个kraken应用程序,在服务器端,如果我这样做,
router.get('/', (req, res) => res.render('index'))
,
ejs
在快速配置中设置为视图引擎,它将索引文件返回到浏览器,并添加webpack
捆绑的反应代码。
通常,建议公开API,以便React接口可以更新数据,例如当用户导航页面时,无需重新加载整个页面。 React特别针对SPA构建,其中很大一部分用于管理页面结构的增量更新。
但是,如果你想在加载的反应页面上提供一些数据,你可以使用脚本标记和JSON传递它,如下所示:
在您的模板中:
<script>
window._myInitialState = JSON.parse("{initialState|js|j|s}");
<script>
(这是使用js
(JSON.stringify),j
(JavaScript字符串)和s
(不要转义HTML)builtin dust filters)来渲染您的数据。例如。与res.locals.initialState
设置为
{
users: [
{ name: "Test" },
{ name: "Toast" },
{ name: "Foo" },
{ name: "Bar" },
]
}
它应该JSON编码到以下脚本:
<script>
window._myInitialState = JSON.parse("{\"users\":[{\"name\":\"Test\"},{\"name\":\"Toast\"},{\"name\":\"Foo\"},{\"name\":\"Bar\"}]}");
<script>
在模板中使用此功能,您应该可以在React代码中访问window._myInitialState
,例如:将它加载到根组件中,如下所示:
componentDidMount() {
this.setState(window._myInitialState);
}
如何在react
如何从Express
后端向客户端React
组件发送JS对象?
我可以通过在res.locals
或cookies
中设置它们来发送简单变量,但对于较大的对象,我该如何做?
不支持API,因为它导致页面加载,然后请求使用户在屏幕上等待。服务器启动后,我的详细信息即可使用。
代码流程简介:
它是一个kraken应用程序,在服务器端,如果我这样做,
router.get('/', (req, res) => res.render('index'))
,
ejs
在快速配置中设置为视图引擎,它将索引文件返回到浏览器,并添加webpack
捆绑的反应代码。
通常,建议公开API,以便React接口可以更新数据,例如当用户导航页面时,无需重新加载整个页面。 React特别针对SPA构建,其中很大一部分用于管理页面结构的增量更新。
但是,如果你想在加载的反应页面上提供一些数据,你可以使用脚本标记和JSON传递它,如下所示:
在您的模板中:
<script>
window._myInitialState = JSON.parse("{initialState|js|j|s}");
<script>
(这是使用js
(JSON.stringify),j
(JavaScript字符串)和s
(不要转义HTML)builtin dust filters)来渲染您的数据。例如。与res.locals.initialState
设置为
{
users: [
{ name: "Test" },
{ name: "Toast" },
{ name: "Foo" },
{ name: "Bar" },
]
}
它应该JSON编码到以下脚本:
<script>
window._myInitialState = JSON.parse("{\"users\":[{\"name\":\"Test\"},{\"name\":\"Toast\"},{\"name\":\"Foo\"},{\"name\":\"Bar\"}]}");
<script>
在模板中使用此功能,您应该可以在React代码中访问window._myInitialState
,例如:将它加载到根组件中,如下所示:
componentDidMount() {
this.setState(window._myInitialState);
}