У меня возникли трудности с пониманием потока реактивного маршрутизатора (https://github.com/rackt/react-router).Кодовый поток в стойке реактивного маршрутизатора
Если у меня есть 2 файла: routes.js, app.js (запись компонента), как показано ниже:
var Router = require('react-router');
var Route = Router.Route;
var routes = (
<Route handler={App}>
<Route path="/" handler={home}/>
</Route>
);
module.exports = routes;
app.js
var React = require('react');
var Router = require('../routes.js');
var RouteHandler = Router.RouteHandler;
var App= React.createClass({
render: function(){
return (
<RouteHandler/>
)
}
});
module.exports = App;
Как компонент приложения вызывается? По традиционному способу я использую следующий код для рендеринга компонента «app» в app.js.
React.render(
<App />, document.getElementById('main')
);
Теперь, что я не понимаю, это то, что делает следующий код. Является ли это заменой традиционного способа рендеринга, мне нужно использовать следующий код для прослушивания url и рендеринга app.js, но не с вышеуказанным кодом?
Router.run(routes, Router.HashLocation, (Root) => {
React.render(<Root/>, document.body);
});
Что делать, если я использую другой JS файл «main.js», чтобы сделать «app.js», и теперь я хочу использовать app.js обрабатывать все пути, как я это делаю. Сказать, что я хочу отобразить, что когда-либо было передано в app.js.
Мой код в main.js ниже:
React.render(
<APP />, document.getElementById('main')
);
Вы также можете использовать 'DefaultRoute' в своих' маршрутах' вместо ' '. –