React实践系列笔记-Library

React Router

再谈 React Router 使用方法(以下部分示例直接截取自该文,向该文作者致敬 )

Quick Start

React Router主要也是基于路径匹配并且注入不同的组件,一般步骤,首先声明根组件,即是所有路由的容器:
var RouteHandler = Router.RouteHandler;
var App = React.createClass({
  render () {
    return (
      <div>
        <h1>App</h1>
        <RouteHandler/>
      </div>
    )
  }
});
然后声明全局的路由规则:
var Router = require('react-router');
var Route = Router.Route;

// declare our routes and their hierarchy
var routes = (
  <Route handler={App}>
    <Route path="about" handler={About}/>
    <Route path="inbox" handler={Inbox}/>
  </Route>
);
最后进行渲染操作:
Router.run(routes, Router.HashLocation, (Root) => {
  React.render(<Root/>, document.body);
});

Params

Path Variables
Props传递
可以以一种Wrapper的方式,进行参数传递:
var React = require('react');
var wrapComponent = function(Component, props) {
  return React.createClass({
    render: function() {
      return React.createElement(Component, props);
    }
  });
};
<Route path="comments" handler={wrapComponent(Comments, {myprop: value})}/>

Nested Router:嵌套路由

类似于angular-router中嵌套路由的概念,如果需要在某个子界面中嵌入一个新的路由规则,即二级路由,也可以直接配置在全局的routes中,不过需要在子界面中添加```<RouteHandler />```,新的组件同样会被注入到该<RouteHandler/>中,该Demo的全部在[这里](http://jsbin.com/duduta/20/edit?js,output)。
/**
 * 图书列表组件,
 */
var Books = React.createClass({  
  render: function() {
    return (
      <div>
        <ul>
          <li key={1}><Link to="book" params={{id: 1}}>活着</Link></li>
          <li key={2}><Link to="book" params={{id: 2}}>挪威的森林</Link></li>
          <li key={3}><Link to="book" params={{id: 3}}>从你的全世界走过</Link></li>
        </ul>
        <RouteHandler />
      </div>
    );
  }
});

React Canvas

18个React示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值