我正在使用react.js,但没有使用节点服务器。我需要一个路由解决方案,但似乎react-router与节点一起工作。如果不是,请举例说明如何集成反应路由器。如果没有,我需要另一个与反应工作的路由器。没有节点的反应路由
3
A
回答
2
React可以与任何返回HTML文件的服务器一起使用。 HTML文件包括JS文件,该文件是这样的:
import React from 'react';
import ReactDOM from 'react-dom';
import Root from './js/containers/root';
import createBrowserHistory from 'history/lib/createBrowserHistory';
const history = createBrowserHistory();
ReactDOM.render(
<Root history={ history } />,
document.getElementById('app')
);
和路由可以通过react-router它看起来像这样进行管理:
import React, {PropTypes, Component} from 'react';
import { IndexRoute, Router, Route } from 'react-router';
import { Provider } from 'react-redux';
import COMPONENTa from './ComponentA';
import COMPONENTb from './ComponentB';
import COMPONENTc './ComponentC';
class Root extends Component {
render() {
const { history } = this.props;
return (
<Router history={ history }>
<Route path="/PATH/PATH/" component={ COMPONENTa }>
<IndexRoute component={ COMPONENTb } />
<Route path="PARAMS/:id" component={ COMPONENTc } />
</Route>
</Router>
);
}
}
Root.propTypes = {
history: PropTypes.object.isRequired
};
0
终于让我找到了我的发现。感谢所有的帮助。
var routes = (
<ReactRouter.Router>
<ReactRouter.Route name="app" path="/" component={App}/>
<ReactRouter.Route name="app" path="new" component={CreateApp}/>
</ReactRouter.Router>
);
ReactDOM.render(
<ReactRouter.Router>{routes}</ReactRouter.Router>,
document.getElementById('content')
);
+0
我有什么,没有使用ES6反应路由器的导入问题。 “ReactRouter.Router”解决了它。 – semira
4
在这里构建@semira是我如何实现一个无积累的反应应用程序。
里面的(在我的情况或./index.php
)./index.html
我们加载库做出反应,做出反应路由器和巴贝尔transpiler,将转换器ES6的JavaScript,使浏览器可以解释它。请注意,您必须明确说明脚本类型为text/babel
,以便Babel转译器转换ES6 javascript。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>React App Boilerplate</title>
<!-- Foundation 6.3.0 -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/foundation/6.3.0/css/foundation.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/foundation/6.3.0/js/foundation.min.js"></script>
</head>
<body>
<div id="app"></div>
<!------------------------------------------------------------------------------------------------------------------>
<!-- Dependencies -->
<!------------------------------------------------------------------------------------------------------------------>
<!-- Babel ES6 to ES5 Transpiler -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.21.1/babel.min.js"></script>
<!-- React Library -->
<script src="https://unpkg.com/[email protected]/dist/react.min.js"></script>
<script src="https://unpkg.com/[email protected]/dist/react-dom.min.js"></script>
<!-- React Router -->
<script src="https://unpkg.com/react-router/umd/ReactRouter.min.js"></script>
<!------------------------------------------------------------------------------------------------------------------>
<!-- React Components -->
<!------------------------------------------------------------------------------------------------------------------>
<script type="text/babel" src="app/components/App.js"></script>
<script type="text/babel" src="app/components/About.js"></script>
<!-- Application entry point -->
<script type="text/babel" src="app/app.js"></script>
</body>
</html>
凡./app/components/About.js
是一个无状态的阵营写在ES6组件:
const About =() => <h2>About Page</h2>;
凡./app/components/App.js
是一个作出反应成分写在ES6:
class App extends React.Component {
render() {
return (
<div>
<h2>App Page</h2>
</div>
);
}
}
然后里面的.app/app.js
通知我们如何能通过存储ReactDOM和ReactRouter作为参考,仍然使代码看起来像文档。
let render = ReactDOM.render;
let browserHistory = ReactRouter.browserHistory;
let Router = ReactRouter.Router;
let Route = ReactRouter.Route;
let IndexRoute = ReactRouter.IndexRoute;
let Link = ReactRouter.Link;
render((
<Router history={browserHistory}>
<Route path="/" component={App}>
<Route path="about" component={About} />
</Route>
</Router>
), document.getElementById('app'))
相关问题
- 1. 节点路由响应没有设置
- 2. 反应路由器:位置“/”没有匹配的路由
- 3. 与节点路由
- 4. 发生反应,路由按钮点击
- 5. 从一个DOM节点到另一个节点的路由事件没有JQUERY
- 6. 反应路由器不路由通过某个点
- 7. 为什么我的节点没有找到路由?
- 8. 从商店路由反应路由器
- 9. 反应路由器和嵌套路由
- 10. 反应路由与快速路由
- 11. 反应路由器不匹配路由
- 12. 反应路由器v4路由事件
- 13. 路由但不能从反应JS反应路由器
- 14. 作出反应路由器v4中的异步路由的私有路由
- 15. createContainer在路由转换后没有收到数据(反应路由器)
- 16. 在没有路由器组件的情况下使用反应
- 17. 反应路由器没有按照我的意愿
- 18. 反应路由器的browserHistory没有位置和其他属性
- 19. 反应,反应路由和HTML模板
- 20. 角度和节点路由
- 21. 节点ExpressJS路由问题
- 22. 节点和路由管理
- 23. 反应路由器需要没有定义
- 24. 推历史反应路由器V4没有导航
- 25. 确认导航与反应路由器没有Mixin为es6类
- 26. 反应路由器版本4没有渲染任何东西
- 27. 反应路由器问题
- 28. 使用反应路由器
- 29. 反应路由器导航
- 30. 反应路由器混淆
这是不是很清楚你在问什么。 React路由器也在客户端工作,因为它是用React组件实现的。没有要求使用节点。 –
你能给我清楚的例子吗?我不清楚如何在我的应用程序中导入和初始化反应路由器。 – semira
你遵循官方教程吗? https://github.com/reactjs/react-router-tutorial –