react动画实践

React 动画实践

ReactTransitionGroup使用

  • ReactTransitionGroup 必须是已经被挂载的组件,例如:
    let Component=React.createClass({
    render(){
    return
    [children]

    }
    });

  • children 组件上必须要有key才能触发React的动画,例如:

      let ListItem = React.createClass({
      componentWillEnter(done){
          console.log('ListItem will enter');
          done();
      },
      render(){
          return (
              <div>{this.props.children}</div>
          );
        }
      });
      let View=React.createClass({
          render(){
               let list = this.state.items.map((item, index)=> {
                  return <ListItem key={index}>{item.text}</ListItem>
              });
          }
      });
    

    当某个时刻View内调用setState后将会触发渲染,ReactTransitionGroup 会比对当前状态的key和下个状态的key并会在新增的key上
    触发ListItem的componentWillEnter 生命周期。

总结

  • 组件只要放在ReactTransitionGroup内并且key是变动的就会触发动画。

react动画实践
https://catalystdp.github.io/2016/07/02/react动画实践/
作者
CatalystDP
发布于
2016年7月2日
许可协议