javascript - 传递数据以在 ExpressJS + Reactjs 中查看

标签 javascript node.js express reactjs

我有一个应用程序,其中一部分是使用 Twitter 登录。 登录成功后,我一般会通过以下方式将用户数据传递给模板

app.get('/', function(req, res, next) {
        log("The Home page has the user info: ", req.session.user);
        res.render('pages/home', {
            app: 'home',
            user: req.session.user || '' 
        });
    });

然后您可以根据用户数据渲染模板。

但是在React中,登录后应该如何将这些数据传给组件呢?

我想直接把数据放在浏览器里,但我对此没有信心。

<script type="javascript">
  var user = #{user}
</script>

你怎么看??谢谢。

最佳答案

通常,您将传递给顶级组件的 Prop 发送到脚本标记中的客户端。

所以,你正在做 <MyApp user={user} />MyApp({user: user}) ,您将创建这样的脚本标记:

var code = "<script>var __react_preload_data = " 
           + JSON.stringify({user: user}) 
           + ";</script>";

在客户端:

React.renderComponent(MyApp(__react_preload_data), document.body);

关于javascript - 传递数据以在 ExpressJS + Reactjs 中查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25255517/

相关文章:

javascript - React 路由器和 Express GET 冲突

node.js - node.jsexpress.cookieSession 是否足够安全以保存敏感数据?

javascript - 向上迭代构造函数链

JavaScript "copy"HTML 表单

node.js - 如何从 grunt 任务访问 Waterline 模型?

node.js - Express 应用程序中的 helpers 文件夹有什么意义?

javascript - 如何获取 h :selectOneMenu 的选定索引

javascript - jQuery UI 自动完成 - 引用 jQuery UI 主题样式表时的自定义样式

windows - Windows 上的 Node.Js - 如何清除控制台

javascript - 是否可以使用 Express 和 React 预渲染服务器端代码?