ReactJS - 如何使用ES5路由视图

时间:2015-11-03 11:02:23

标签: javascript reactjs react-router

我发现的大多数ReactJs指南均基于ES5。所以我开始以这种方式使用ReactJS。 现在,我知道如何创建我的所有components时间来创建一个小single-page-application。我的麻烦是要了解route views如何在不重新加载页面的情况下react-router。我找到了ES6https://github.com/rackt/react-router),这似乎是我的目标,但所有的例子都写在keepalive中,目前我还不清楚。 当然我会在ES6中重构我的应用程序,但我更愿意按照我的方式开始。

是否有人可以帮助我“将”反应路由器“翻译”到ES5并让我更清楚了?

2 个答案:

答案 0 :(得分:4)

以下是来自 react-route 教程

的示例
render((
  <Router>
    <Route path="/" component={App}>
      <Route path="about" component={About} />
      <Route path="inbox" component={Inbox}>
        <Route path="messages/:id" component={Message} />
      </Route>
    </Route>
  </Router>
), document.body)

组件应用程序,关于,收件箱,消息是使用ES6语法创建的,但无论如何它也会使用babel将您的ES6语法转换为ES5,因此您可以轻松地将ES5组件传递给它们。

另外,这两行代码:

import { render } from 'react-dom'
import { Router, Route, Link } from 'react-router'

表示:

var render = require('react-dom').render;
var Router = require('react-router').Router;
var Route = require('react-router').Route;
var Link = require('react-router').Link

我希望它会对你有所帮助。

由于

答案 1 :(得分:0)

之前的回答忘了提及BrowserHistory,它是ReactRouter的重要组成部分。您可以升级here

var React = require("react");
var ReactDOM = require("react-dom");
var SchoolsList = require("./components/SchoolsList.jsx");

var Router = require('react-router').Router;
var Route = require('react-router').Route;
var Link = require('react-router').Link

var browserHistory = Router.browserHistory;



var _question = schoolsStore.getQuestion();

function render(){
    //console.log(_question);
    ReactDOM.render(
    <Router history={browserHistory}>
    <Route path="/" component={SchoolsList} question={_question.question} activeIndex={_question.activeIndex} />
    </Router>,
    document.getElementById("container"));
}

render();