【发布时间】:2015-09-12 23:29:21
【问题描述】:
我有一个导出对象的节点模块(数据)。此对象具有值更改的属性。
var data = require('data');
var count = data.count;
data.count 正在改变它的值(让我们假装它是秒数)。
我使用 express 和车把,我目前显示的数据如下:
var express = require('express');
var router = express.Router();
router.get('/', function(req, res, next) {
res.render('index', { title: 'Home', data: count });
});
这样做需要刷新页面才能看到更新后的值。我的问题是:如何在不刷新页面的情况下实时显示count的值?
我一直在研究 React,但我真的不明白如何设置它。我阅读了一些关于反应模块(nom install react)的教程,但没有太多关于如何使用它的文档。我了解 react 网站上的简单指南,但它会在客户端插入 react 脚本。
如果有人能指出正确的方向,那就太好了。
谢谢。
更新:
所以我安装了 npm insatll react 和 npm install babel 并在 react 中创建了一个如下所示的组件 (comp.jsx):
var React = require('react/addons');
var data = require('data');
var d = React.createClass({
render: function() {
return (
<h1>{data.votes}</h1>
);
}
});
module.exports.Component = d;
我将这个组件包含在我的路由文件中,现在看起来像这样:
require('babel/register');
var React = require('react/addons');
var data = React.createFactory(require('comp.jsx').Component);
router.get('/', function(req, res, next) {
var dataHtml = React.renderToString(data({}));
res.render('index', { reactOutput: data });
});
数据显示在我的车把模板中,如下所示:{{{reactOutput}}}。数据显示了,但还没有实时更新,需要刷新页面才能显示数据的变化。
有什么想法吗?
【问题讨论】:
-
你目前使用哪些 js 库?
-
除了那个节点、快递发电机和车把之外别无他物。对任何能给我想要的功能的东西开放。
-
这个问题非常广泛。您正在询问如何在服务器和客户端之间同步模块的属性,以及如何在没有任何代码的情况下在反应中呈现变化的值,以及如何检测对此属性的更改。
-
我的意思是我不知道使用什么代码来执行此功能。我愿意添加完成工作所需的任何内容。
标签: javascript node.js reactjs