Articles of reactjs

优点和缺点只使用快递+反应,而不是expression+反应+玉/ ejs

使用反应作为引擎https://github.com/reactjs/express-react-views vs 调用renderToString,然后用其他引擎重新启动https://strongloop.com/strongblog/node-js-react-isomorphic-javascript-why-it-matters/ 可能是其他像res.send + renderToString

momentjs – fromNow()方法在通用(同构)的js应用程序中

我有一个应用程序是用node.js和react.js构build的,并且是通用的(或者是之前调用的“同构”),并且使用REST API来获取数据。 在某些组件的render方法中,我以2 days ago或few seconds ago格式显示date,在这种情况下,moment.js完美地工作。 我正在谈论它的方法fromNow() ,例如: render() { const { date } = this.props; const formattedDate = moment(date).fromNow(); return ( <div>{formattedDate}</div> ); } 但是这是问题: Warning: React attempted to reuse markup in a container but the checksum was invalid. This generally means that you are using server rendering and the markup generated on […]

与JSPM重用同构/通用React组件

我正在尝试使用ExpressJs / ReactJs / JSPM堆栈来configuration同构/通用设置。 我目前的问题是,JSPM要求我将JSX模块添加到.jsx! 后缀为了传输它们,所以我的组件依赖期望文件名是从服务器模板到浏览器组件的区别。 有没有人遇到过这个问题并解决了它?

两个通配符路由在反应路由中意味着什么?

我试图了解kirasoft的react-starter-kit,注意到他们的路由有两个“*”通配符路由条目。 为什么有两个,优先顺序是什么? 第一条路线似乎设置了整体的应用程序,然后第二个似乎引发了默认的内容处理程序…都被解雇了,如果是的话,这两者之间的逻辑是什么,他们都只是顺序触发,并得到追加不知何故在一起的答复? import React from 'react'; import Router from 'react-routing/src/Router'; import http from './core/HttpClient'; import App from './components/App'; import ContentPage from './components/ContentPage'; import ContactPage from './components/ContactPage'; import LoginPage from './components/LoginPage'; import RegisterPage from './components/RegisterPage'; import NotFoundPage from './components/NotFoundPage'; import ErrorPage from './components/ErrorPage'; const router = new Router(on => { on('*', async (state, next) => […]

React – 服务器端组件呈现

我试图renderToString一个非常简单的React组件在服务器上: /** @jsx dom */ var React = require("react"); var Title = React.createClass({ render: function(){ return(<h1>Hello World</h1>) } }); module.exports = React.createFactory(Title); 当我调用ReactDOMServer.renderToString(组件)时,我得到Error: Invariant Violation: renderToString(): You must pass a valid ReactElement. 如果我做React.createElement(标题),我得到 return(dom.h1(null, "Hello World")) ^ ReferenceError: dom is not defined 路线文件: var express = require('express'), router = express.Router(), React = require("react") ReactDOMServer = […]

从Express响应(渲染)发送道具给ReactJs

我有一个简单的应用程序与node.js , 快递 , 护照和react-js 。 我有一个包含client.js的index.html ,它是react-js的一个简单呈现: var React = require('react'); var React = require('react-dom'); var Client = require('./Client.jsx'); ReactDOM.render( React.createElement(Client, null), document.getElementById('main') ); Client是真正的应用程序。 在服务器端( routes.js )我有这个:app.get('/ login',function(req,res){res.render('login');}); app.get('/auth/google', passport.authenticate('google', { scope: ['profile', 'email'] }),function(req, res){}); app.get('/auth/google/callback',passport.authenticate('google', { failureRedirect: '/login' }), function(req, res) { res.redirect('/'); }); app.get('/', ensureAuthenticated ,function(req, res){ req.session.id = req.user._id; […]

在使用babel cli从命令行进行编译时,您可以使用.babelrc文件吗?

我有一个反应组件,我希望发布到NPM。 我使用以下命令将es2015 src编译为es5 lib babel src –out-dir lib 我在我的模块中有以下.babelrc文件,但我想知道是否在cli上运行上面的脚本将拿起巴贝尔预设? { "presets": ["es2015", "stage-0", "react"] }

NodeJs – 如何用import关键字避免相对path

根据几个github文档,我已经尝试了这一点,虽然它是真正的require关键字,因为第一个服务器文件的第一行激发[index.js]: process.env.NODE_PATH = 'app'; require('module').Module._initPaths(); 它没有工作。 然后,我在webpack中读取,但仍然不起作用: resolve: { root: path.resolve(path.join(__dirname + '/app')), alias: { app: 'app', component: 'app/components', utility: 'app/utils' }, extensions: ['', '.js', '.jsx'] }, 我如何避免无休止的'../../../../',因为我的项目越来越深,因为我不想继续这样做: 从'../../../../../Whatever'导入MyComponent? 谢谢

React – 'Uncaught TypeError:无法读取reader.onload中的属性

当我运行下面的代码 控制台显示: Uncaught TypeError: Cannot read property 'component' of undefined 但testing代码可以显示: ReactDOM.findDOMNode(this.refs.component).innerText = 'ddd'; 什么问题? var reader = new FileReader(); reader.onload = function(e) { console.log('onload: ' + e.target.result); ReactDOM.findDOMNode(this.refs.component).innerText = e.target.result; } reader.onerror = function(stuff) { console.log("error", stuff); console.log (stuff.getMessage()); } ReactDOM.findDOMNode(this.refs.component).innerText = 'ddd'; console.log('readAsText:' + reader.readAsText(data[0]));

使用webpack渲染节点服务器上的组件

我有一个反应组件。 <myFooter> 。 这是一个简单的页脚。 import React from 'react'; import './my-footer.scss'; export default class myFooter extends React.Component { render() { return ( <footer className="col-xs-12"> hello ! </footer> ); } } 我想从服务器端渲染它。 在后端,我有一个快递服务器。 为此我写了这个: import myFooter from '../components/my-footer.jsx'; app.get('/footer', function(req, res) { var string1 = ReactDOMServer.renderToString(myFooter); res.send(string1); }); 现在的问题是服务器无法读取sass文件。 对于客户端渲染,我使用的是webpack。 Webpack构build一切,并提供一个包文件。 但我不知道如果它的服务器端发生了什么。 我怎样才能编译使用webpack。 如果可以的话,我是否需要为节点服务器上的每个请求编译我的应用程序?