1.2.5 • Published 7 years ago

yo-router v1.2.5

Weekly downloads
5
License
MIT
Repository
-
Last release
7 years ago

Yo-Router

简介

Yo-Router 是基于 React Router 实现的一个路由库。

Yo-Router 一方面继承了 React-Router 的特点,提供了声明式的方式来创建路由,且保证 UI 的显示与 URL 切换的同步;同时还重写了 History 模块,让路由能自由的在 SPA/多页 下进行切换,并提供统一的生命周期管理与数据传递方式。

同时还支持异步路由的方式,可以让你的页面资源异步加载,提升大型应用的页面加载效率。

安装

使用 npm:

$ npm install --save yo-router

示例

import React, { Component } from 'react'
import { render } from 'react-dom'
import { Router, Route, Link, createBrowserHistory } from 'yo-router'

// 创建历史
const browserHistory = createBrowserHistory()

const App = ({ children }) => <div>{children}</div>
const About = () => <div>About</div>
const NoMatch = () => <div>No Match!</div>

const Users = ({ children }) => (
  <div>
    <h1>Users</h1>
    <div className="master">
      <ul>
        {/* 使用 <Link> 标签进行方便的路由跳转 */}
        {this.state.users.map(user => (
          <li key={user.id}><Link to={`/user/${user.id}`}>{user.name}</Link></li>
        ))}
      </ul>
    </div>
    <div className="detail">
      {children}
    </div>
  </div>
)

class User extends Component {
  componentDidMount() {
    this.setState({
      // 对应页面内的组件将会获取 URL 参数,以便进行数据的获取和渲染
      user: findUserById(this.props.params.userId)
    })
  }

  render() {
    return (
      <div>
        <h2>{this.state.user.name}</h2>
      </div>
    )
  }
})

// 声明路由配置
render((
  <Router history={browserHistory}>
    <Route path="/" component={App}>
      <Route path="about" component={About}/>
      <Route path="users" component={Users}>
        <Route path="/user/:userId" component={User}/>
      </Route>
      <Route path="*" component={NoMatch}/>
    </Route>
  </Router>
), document.getElementById('root'))

更多的使用方法,可以参考我们的例子:Demo

1.2.6-beta.0

7 years ago

1.2.5

7 years ago

1.2.4

7 years ago

1.2.4-rc.0

7 years ago

1.2.3

7 years ago

1.2.3-rc.1

7 years ago

1.2.3-rc.0

7 years ago

1.2.2

7 years ago

1.2.2-rc.0

7 years ago

1.2.1

7 years ago

1.2.1-rc.0

7 years ago

1.2.0

7 years ago

1.2.0-rc.0

7 years ago

1.1.8

7 years ago

1.1.8-rc.1

7 years ago

1.1.8-rc.0

8 years ago

1.1.7

8 years ago

1.1.7-rc.0

8 years ago

1.1.6

8 years ago

1.1.5

8 years ago

1.1.5-beta.0

8 years ago

1.1.4

8 years ago

1.1.4-beta.0

8 years ago

1.1.3

8 years ago

1.1.2

8 years ago

1.1.2-beta.1

8 years ago

1.1.2-beta.0

8 years ago

1.1.1

8 years ago

1.1.0

8 years ago

1.1.0-beta.0

8 years ago

1.0.7

8 years ago

1.0.6

8 years ago

1.0.5

8 years ago

1.0.4

8 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago