美文网首页
react-transition-group简易说明

react-transition-group简易说明

作者: stonehank | 来源:发表于2018-07-19 19:21 被阅读0次

Transition

默认展示组件某个特定状态的样式,而不是创建渐变动画

例如:

<Transition
        in={toggleShow}
        timeout={1000}
        unmountOnExit
        >
    {state=>(
        <div>{state}</div>
    )}
</Transition>

注意:子组件是函数(见下方children)

CSSTransition

展示组件从状态到另一个状态的动态变化,需要定义className和相关样式

例如:

<CSSTransition 
        in={toggleShow}
        className="fade"
        timeout={300}
        >
    //子组件(需要动画的组件)
</CSSTransition>

css中设置如下:

.fade-enter {
  opacity: 0.01;
}
.fade-enter-active {
  opacity: 1;
  transition: opacity 300ms;
}
.fade-exit {
  opacity: 1;
}
.fade-exit-active {
  opacity: 0.01;
  transition: opacity 300ms;
}

TransitionGroup

管理一些列组件的动画,例如列表

<ul>
  <TransitionGroup>
    {items.map(({ id, text }) => (
      <CSSTransition
        key={id}
        timeout={500}
        classNames="fade"
      >
        <li>{text}</li>
      </CSSTransition>
    ))}
  </TransitionGroup>
</ul>

常用属性

  • children

当children是一个函数时,接受一个参数state,state包含了内部组件的transition状态
'entering', 'entered', 'exiting', 'exited', 'unmounted'

  • in

定义当前组件的状态(true为entered,false为exited)

  • unmountOnExit

当状态为exited的时候是否需要unmount

  • timeout

定义transition间隔,可以这么写:

timeout={{
  enter:300,
  exit:300
}}

相关文章

网友评论

      本文标题:react-transition-group简易说明

      本文链接:https://www.haomeiwen.com/subject/dhcxmftx.html