react-router2.0 web 使用
来源:互联网 发布:优衣库淘宝假货 编辑:程序博客网 时间:2024/06/05 19:59
一、前端script 引用react-router 的使用。
前言:
router有两个版本,最新的是2.0,和旧的版本。
所以有有两种写法。
汗了吧
先说2.0下的用法
首先说环境:
需要引用react react-dom reactrouter 2.0 babel/browser.js
react 以前需要引用jsx来解析。
现在用babel来解析,所以script type="text/babel" 了。
var Router=ReactRouter.Router;
var Route=ReactRouter.Route;
var Link=ReactRouter.Link;
var browserHistory=ReactRouter.BrowserHistoryl;
var IndexRoute=ReactRouter.IndexRoute;
var Redirect=ReactRouter.Redirect;
ReactDOM.render((
<Router history={browserHistory} >
<Route path="/" component={App} onEnter={requireAuthApp} onLeave={requireLeaveApp}>
<IndexRoute component={Home} fnclick={App.onClick} />
<Route path="list" component={List} onLeave={requireLeaveList} >
</Route>
<Route path="list/:id" component={ListShow} >
</Route>
<Route path="about" component={About} onEnter={requireAuth} >
</Route>
<Route path="login" component={Login} />
<Redirect from="lists" to="list"/>
<Route path="*" component={NoMatch}/>
</Route>
</Router>
), document.querySelector('#app'))
//path *表示当前路由内没有匹配到组件时显示
//app 组件内需要输出{this.props.children} 子组件这样才能做到局部匹配.
//当组件有子组件时都需要输出子组件。
//以下app上才输出了,所以app内不能实现三级嵌套组件。因为第二级没有输出子组件
//IndexRoute 表示此路由下默认显示的组件
//Redirect 跳转配置 from 从这个匹配跳到to 指定的匹配
//Route上的onEnter属性用于访问前的验证,如判断登录
//path 中/开头表示绝对路径,不会因放在组件内而影响
//绝对路径可能在动态路由中无法使用。
//onEnter:当跳转到组件时调用,可以用来权限验证等。
//onLeave:会在离开组件时触发,从触发组件一直触发到顶级组件的onLeave 。
如app组件内有嵌套子组件,app 渲染里需要用{this.props.children}
来显示子组件
组件接收值:
//通过this.props.params.XX
//通过this.props.location.query.XX
Link使用:
<Link to="/list/1" query={{age:23}}>listshow1</Link><br/>
Route:
path="" 定义匹配规则, /表示绝对路径
component设置组件
IndexRoute 定义默认显示组件
Redirect 跳转组件
path 定义跳转规则 component 跳转到的组件
Route path="*" 设置not find 时显示组件
onEnter onLeave 使用<br/>
在path=/ 上的onEnter在刷新或进入页面时会执行 onLeave 一直不会执行<br/>
onEnter:会在进行组件时执行(从父级到子级时经过的所有子级都从上到下执行,从子级回到父级,父级不会执行。)<br/>
同级间跳转目标onEnter会执行。<br/>
onLeave:在离开组件时执行:同级a跳转到b a上会执行离开 <br/>
父级a到子级b,父级onleave不会执行,因为没有离开父级组件,只是进入了子级。<br/>
当从a 的子级b 跳转到a的同级时。(从子级到父级)会依次执行b a 上的onleave。()<br/>
path 语法:<br/>
:XX 参数值<br/>
(/:name) 内部是可选的可有可无<br/>
* 任意字符 /也在内 *.* 会匹配XX.XX这样的<br/>
如果路由是相对的,那么完整的路径将由它和他的所有祖先节点的路径组合而成<br/>
使用绝对路径可以使路由匹配行为忽略嵌套关系<br/>
路由算法会根据定义的顺序自顶向下匹配路由的。<br/>
ReactRouter是建立在history 之上的,一个history知道如何去监听地址栏的变化,并解析这个url转化为location对象。
然后router用它匹配到路由,最后渲染指定的组件<br/>
- react-router2.0 web 使用
- Vue-Router2.0使用1
- vue-router2.0,子路由的使用
- Vue-router2.0版本的使用
- Vue-Router2.0教程
- Vue-router2.0基础实践
- Vue-router2.0基础实践
- Vue-router2.0基础实践
- Vue-router2.0学习笔记
- Vue-router2.0学习笔记
- 使用vue-Router2 实现路由功能
- Vue-router2.0基础,秒会。
- 关于vue-router2.0的学习笔记
- react-router 0.X web 使用
- Vue2.0+Vue-router2.0+Vuex2.0搭建搭建环境
- vue-router2.0的最简单的例子
- vue-router2
- vue-router2
- 91. 文件系统 code.bupt.edu.cn 题干问题
- utf8 编码显示乱码
- RGB<---->YUV转换
- Android项目及编码规则
- scala 多线程actor
- react-router2.0 web 使用
- Java中只有按值传递,没有按引用传递!
- 发送邮件网页样式乱了。
- Android带Cookie的Http请求
- 饿了么移动APP的架构演进
- Hbase rowkey 热点问题
- java中8种基本类型及运行转换
- MyEclipse使用总结——MyEclipse10安装SVN插件
- 利用JS实现的根据经纬度计算地球上两点之间的距离