我想到的是:
/Home
)到帖子页(/Posts
)注意,这个答案涵盖了React Router 0.13.x版本--即将发布的1.0版本看起来将有明显不同的实现细节
这是带有react-router的最小server.js
:
var express = require('express')
var React = require('react')
var Router = require('react-router')
var routes = require('./routes')
var app = express()
// ...express config...
app.use(function(req, res, next) {
var router = Router.create({location: req.url, routes: routes})
router.run(function(Handler, state) {
var html = React.renderToString(<Handler/>)
return res.render('react_page', {html: html})
})
})
其中routes
模块导出一个路由列表:
var React = require('react')
var {DefaultRoute, NotFoundRoute, Route} = require('react-router')
module.exports = [
<Route path="/" handler={require('./components/App')}>
{/* ... */}
</Route>
]
var React = require('react')
var Router = require('react-router')
var routes = require('./routes')
Router.run(routes, Router.HistoryLocation, function(Handler, state) {
React.render(<Handler/>, document.body)
})
在本例中,我们使用HistoryLocation
,它使用History
API来确保在单击后退/前进按钮时发生正确的事情。还有一个hashlocation
,它更改URLhash
以生成历史记录条目,并监听window.onhashchange
事件以触发导航。
当您使用React-Router的
组件时,您将为它提供一个to
道具,即路由的名称,加上路由所需的任何params
和query
数据。此组件呈现的有一个
onclick
处理程序,该处理程序最终使用您提供的链接道具调用路由器实例的router.transitionto()
,如下所示:
/**
* Transitions to the URL specified in the arguments by pushing
* a new URL onto the history stack.
*/
transitionTo: function (to, params, query) {
var path = this.makePath(to, params, query);
if (pendingTransition) {
// Replace so pending location does not stay in history.
location.replace(path);
} else {
location.push(path);
}
},
我想到的是: 路线是如何解释的?例如,从主页()到帖子页()的请求 路由在服务器端还是客户端? 它如何知道它是如何处理的?
问题内容: 前锋 看来,在Meteor中,如果没有正常工作流程(根据我对服务器端路由的了解)进行某种变通,我们就无法调用服务器端路由将文件呈现到页面。我希望我对此是错误的,并且有一种简单的方法可以实现我想要做的事情… 很抱歉,如果这有点长,但是我认为在这种情况下,有必要提供更多的背景和背景信息 软件/版本 我使用的是最新的Iron Router 1. 和Meteor 1. ,首先,我使用的是Acc
我想把react-route添加到我的应用程序中,我有下面的代码: 更新:已安装react-router 3.0.2并工作。
在服务器端react中使用react路由器dom会创建错误。 如果url匹配我的组件路径,我将使用react router dom BrowserRouter在div中呈现我的组件。 然后使用以下代码以特定div为目标渲染我的组件: 但此代码仅在客户端react中工作。如何将此实现到服务器端?
路由器用于路由客户端应用程序并定义应用程序对象的URL表示。 当Web应用程序为应用程序中的重要位置提供可链接,可收藏且可共享的URL时,需要路由器。 下表列出了可用于操作BackboneJS - Router - S.No. 方法和描述 1 extend 它扩展了主干的路由器类。 2 routes 它定义了应用程序对象的URL表示。 3 initialize 它为路由器实例化创建了一个新的构造函
问题内容: 我为一项服务有不同的软件产品,需要将其部署到一台服务器上。在服务器运行Node.js和Express的同时,客户端通过react进行构建,并通过create- react-app进行构建设置。 当我从服务器为单个应用程序提供服务时,可以通过以下方式完成: 我希望能够从服务器提供多个应用程序。我该怎么办? 我尝试的是为资产连接不同的静态路径,并使用不同的名称分隔客户端,尽管这样做不起作用