我怎样才能最好地实现这个 React Transition?

旺卡斯威利

我正在尝试创建一个易于使用的 UI/UX 选择系统。

本质上,在视口上,我首先有 3 个“难度”组件,用于选择您想要的“难度级别”。

单击后,他们应过渡到下一个选择阶段,即“男性”或“女性”。

单击此按钮应将难度级别组件向左移动/删除(在视口外),并将性别选择移动到视口中。

我将如何实现这一点?

我还计划在未来实现“返回”功能,以便用户可以在难度和性别组件之间来回切换。

我的想法

  1. 单击按钮后,我只需使用 CSS 将难度组件转换出视口,并将“性别”组件转换到视口中。转换后,我给该组件 adisplay: none以将其从用户中完全删除。

顾虑:这似乎效率不高。我应该完全移除组件吗?如果是这样,从哪里开始这样做?

  1. 另一种方法是根据需要删除/添加组件……我认为这需要使用ComponentDidMount()ComponentDidUnmount()函数,然后使用 React Transition Group 库以某种方式将它们转换出来?

这是我自己手绘的一个优秀的、类似毕加索的手绘示例:

例子

FisNaN

有如何进行过渡。
通常,设置会display: none停止您不想做的任何类型的动画。

export default class Modal extends React.Component {
  shouldComponentUpdate(nextProps, nextState) {
    return (
      nextProps.show !== this.props.show ||
      nextProps.children !== this.props.children
    );
  }

  render() {
    const { show, children } = this.props;
    return (
      <div
        style={{
          transform: show ? 'translateY(0)' : 'translateY(-100vh)',
          opacity: show ? 1 : 0,
        }}
      >
        {children}
      </div>
    );
  }
}

请注意,返回 false fromshouldComponentUpdate将停止重新渲染模态及其子项。可以是任何东西
children也可以什么都不是。因此,当您不想显示它时,渲染一个空的div外部视图窗口非常有效。

关键外卖

  • display: none大多数时候应该不需要。它不支持动画,渲染函数可以返回<div />null

  • 无论显示类型和窗口位置如何,React 组件在收到新的 props 或更新的状态时都会重新渲染。

  • 母马肯定对渲染生命周期有清楚的了解,不是所有的挂载/更新功能都可以setState,您可以停止手动重新渲染。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

React:我怎样才能让这个 React 组件写得更好以提高效率?

当src更改时,React img不会立即更改。我怎样才能解决这个问题?

我怎样才能让这个 React/Redux 应用程序正确呈现?

我怎样才能实现这个设计?

我怎样才能逃脱 React useEffect 无限循环?

我怎样才能有效地将JSON数据绑定到React中的单选按钮?

我怎样才能真正地执行这个?

如何正确实现页面过渡的React Transition Group

React Native 异步存储与 UI 不同步?我怎样才能改变这种行为?

我怎样才能让TypeScript对React道具中的传播运算符进行类型检查?

我怎样才能最好地旋转我的红移表?

我怎样才能生成这个?

我怎样才能抓取这个页面?

我怎样才能更简化这个?

我怎样才能制作这个套装?

我怎样才能加快这个功能

我怎样才能简化这个?

我怎样才能简化这个脚本?

我怎样才能画这个边界?

我怎样才能阅读这个xml?

我怎样才能摆脱这个循环?

我怎样才能优化这个jquery?

我怎样才能在这个脚本中实现这个布尔变量?

我怎样才能更好地抽象?

我的间谍功能没有被调用 - 我怎样才能正确地监视这个功能?

我怎样才能更有效地写这个而不重复自己?

我怎样才能让它更好地使用这个 json 检查器功能?PYTHON

我怎样才能让它在 .map 上使用我的过滤器使用 react native?

我怎样才能在 android 中实现这种海浪进步(检查这个 gif 图像)?