You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

2.8 KiB

Router 默认进出场

  • order: 7

router 组合的进场与出场动画。


var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var Link = ReactRouter.Link;
var EnterAnimation = antd.EnterAnimation;
var Menu = antd.Menu;

var App = React.createClass({
  getInitialState: function () {
    return {};
  },
  clickPage() {
    this.setState({
      enter: {delay: 0.3},
      leave: {delay: 0}
    });
  },
  render() {
    var key = this.props.location.pathname;
    return (
      <div>
        <Menu style={{marginBottom: 20}} mode="horizontal">
          <Menu.Item key='home'>
            <Link to="/" onClick={this.clickPage}>首页</Link>
          </Menu.Item>
          <Menu.Item key='page1'>
            <Link to="/page1" onClick={this.clickPage}>Page 1</Link>
          </Menu.Item>
          <Menu.Item key='page2'>
            <Link to="/page2" onClick={this.clickPage}>Page 2</Link>
          </Menu.Item>
        </Menu>
        <EnterAnimation className='demo-router-wap' enter={this.state.enter} leave={this.state.leave}>
            {React.cloneElement(this.props.children || <div key='home' className='demo-router-child'><h1>Home</h1><div>这是首页</div></div>, {key: key})}
        </EnterAnimation>
      </div>
    );
  }
});
var Page1 = React.createClass({
  render() {
    return (
      <div className="demo-router-child">
        <h1>Page 1</h1>
        <p><Link to="/page2">A link to page 2 should be active</Link>依次进场</p>
        <p><Link to="/page2">A link to page 2 should be active</Link>依次进场</p>
        <p><Link to="/page2">A link to page 2 should be active</Link>依次进场</p>
        <p><Link to="/page2">A link to page 2 should be active</Link>依次进场</p>
        <p><Link to="/page2">A link to page 2 should be active</Link>改变样式</p>
      </div>
    );
  }
});
var Page2 = React.createClass({
  render() {
    return (
      <div className="demo-router-child">
        <h1>Page 2</h1>
        <p><Link to="/page1">a link to page 1 </Link>我是页面2.</p>
        <p><Link to="/page1">a link to page 1 </Link>我是页面2.</p>
        <p><Link to="/page1">a link to page 1 </Link>我是页面2.</p>
        <p><Link to="/page1">a link to page 1 </Link>我是页面2.</p>
      </div>
    );
  }
});
React.render((
  <Router>
    <Route path="/" component={App} ignoreScrollBehavior>
      <Route path="page1" component={Page1} />
      <Route path="page2" component={Page2} />
    </Route>
  </Router>
), document.getElementById('components-enter-animation-demo-router'));