如何使用React + React-Router-Component手动导航到路由

时间:2014-06-18 19:16:35

标签: javascript gruntjs reactjs

我创建了一个React组件库,JS反应页面视图的呈现和控制。

// Application js, controls the routes.
var Application = React.createClass({
    mixins: [Router],

    routes: {
        '/': HomePage,
        '/users': PerformerPage
        // , null: NotFoundPage
    },

    render: function () {
        return this.transferPropsTo(this.renderRouteHandler());
    }
});

// and in HomeView.js, a link to a page
<Link href={'/users'}>{'Test'}</Link>

这一切都很有效。除非我手动导航到该链接时,它显然还没有处理它...所以我的问题是,如果服务器重定向到索引ALWAYS,会反应赶上吗?我非常精通咕噜声,并且通常构建自动化,但遗憾的是,节点js服务器并不是我的强项。

在我的grunt服务器

  task =>
        'connect:livereload',
        'webpack:development',
        'open',
        'watch'

最终结果:用户应将地址粘贴到栏中(即site.com/users)并导航到应用程序/用户。

谢谢:D任何帮助都会很棒。

1 个答案:

答案 0 :(得分:1)

一种方法是将路由放在自己的文件中(比如client / routes.js)

module.exports = {
    '/': HomePage,
    '/users': PerformerPage
    // , null: NotFoundPage
};

现在,您可以在应用程序文件和节点服务器中要求它们:

var app = require('express')();
var routes = Object.keys(require('../client/routes'));

routes.forEach(function(route){
   app.get(route, function(req, res){
      res.sendFile(__dirname + '/static/index.html');
   });
});