npm 包 preact-transition-group 使用教程

介绍

preact-transition-group 是一个基于 React、Preact 的过渡动画库,它可以帮助我们在组件创建和销毁的时候加上过渡动画效果。使用 preact-transition-group 可以使得页面在视觉上变得更加流畅美观,提升用户体验。

安装

preact-transition-group 可以通过 npm 安装:

- --- ------- -----------------------

使用

基础使用

preact-transition-group 的使用非常简单,只需要在需要过渡动画的组件外层加上 <TransitionGroup> 组件,然后在需要加上过渡动画的组件上加上 <CSSTransition> 组件即可。

------ - ---------------- ------------- - ---- --------------------------

-------- ----- -
  ----- ------ -------- - ----------------

  ------ -
    -----
      ------- ----------- -- -------------------------------

      ---------------- -----------------
        ----- -- -
          --------------
            -----------------
            -------------
            -------------
          -
            ---- -------------------------- -----------
          ----------------
        --
      ------------------
    ------
  --
-

在上面的示例中,我们使用了 preact-transition-group 提供的 CSSTransition 组件,将需要加上过渡动画的组件包裹了起来。同时,我们还指定了 TransitionGroupcomponent 属性为 null,这样可以避免 TransitionGroup 在页面中多余的 DOM 元素。

动画类名

preact-transition-group 提供了一些默认的动画类名,这些类名可以帮助我们快速创建动画效果,而无需手动编写 CSS 样式。具体的类名如下:

类名 作用
enter 进入前的样式
enter-active 进入时的样式
enter-done 进入后的样式
exit 离开前的样式
exit-active 离开时的样式
exit-done 离开后的样式
appear 初始状态
appear-active 初始状态到进入状态的过渡效果,需要设置 appear={true} 才会生效

<CSSTransition> 组件上使用 classNames 属性可以指定动画类名的前缀,如:

-------------- ----------------- ------------- --------------

在上面的示例中,我们指定了动画类名的前缀为 fade,preact-transition-group 会自动帮我们添加前缀,并在 CSSTransition 组件不同的生命周期中添加相应的动画类名。

自定义动画

如果默认的动画效果无法满足我们的需求,我们可以自定义动画效果。我们只需要编写自己的 CSS 样式,然后在 <CSSTransition> 组件上指定对应的动画类名即可。

----------- -
  -------- --
-

------------------ -
  -------- --
  ----------- ------- ------
-

---------- -
  -------- --
-

----------------- -
  -------- --
  ----------- ------- ------
-
--------------
  -------------
    ------ -------------
    ------------ --------------------
    ----- ------------
    ----------- -------------------
  --
  -------------
  -------------
-
  ---- -------------------------- -----------
----------------

在上面的示例中,我们定义了一个新的动画类名前缀 fade,并编写了两个动画效果:

  • fade-enterfade-enter-active:元素进入的时候,透明度从 0 变为 1。
  • fade-exitfade-exit-active:元素离开的时候,透明度从 1 变为 0。

生命周期

preact-transition-group 提供了三个基本的生命周期方法,分别为:

  • onEnter
  • onEntering
  • onEntered

这三个方法分别对应着 CSSTransition 组件在进入过程中的三个状态:

  • onEnter:组件进入前,此时还没有添加进入时的 CSS 样式。
  • onEntering:组件进入中,此时添加了进入时的 CSS 样式,但是还没有添加进入后的 CSS 样式。
  • onEntered:组件进入后,此时添加了进入后的 CSS 样式。

同样的,preact-transition-group 也提供了三个离开过程中的生命周期方法:

  • onExit
  • onExiting
  • onExited

这三个方法分别对应着 CSSTransition 组件在离开过程中的三个状态:

  • onExit:组件离开前,此时还没有添加离开时的 CSS 样式。
  • onExiting:组件离开中,此时添加了离开时的 CSS 样式,但是还没有添加离开后的 CSS 样式。
  • onExited:组件离开后,此时添加了离开后的 CSS 样式。
--------------
  -----------------
  -------------
  -------------
  ----------- -- -----------------------
  -------------- -- --------------------------
  ------------- -- -------------------------
  ---------- -- ----------------------
  ------------- -- -------------------------
  ------------ -- ------------------------
-
  ---- -------------------------- -----------
----------------

多组件动画

在实际开发中,我们可能需要给多个组件都添加过渡动画,而不是只对一个组件进行过渡。preact-transition-group 提供了 <TransitionGroup> 组件,可以用于同时管理多个 <CSSTransition> 组件。

---------------- -----------------
  ----------------- -- -- -
    --------------
      -----------------
      -------------
      -------
    -
      -----------------
    ----------------
  ---
------------------

在上面的示例中,我们使用了 <TransitionGroup> 组件将多个 <CSSTransition> 组件管理起来,通过遍历 items 数组来动态生成 <CSSTransition> 组件。这样可以使得我们的过渡动画变得更加简洁易懂。

总结

preact-transition-group 是一个非常优秀的过渡动画库,它能够帮助我们轻松实现组件之间的过渡动画效果。通过本文的介绍,相信大家已经对 preact-transition-group 的使用有了更深入的了解。在实际开发中,我们可以结合自己的业务场景,适当地使用 preact-transition-group,使得页面变得更加生动有趣。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedcb90b5cbfe1ea0612624


猜你喜欢

  • npm 包 nano-assign 使用教程

    在前端开发过程中,我们经常需要将一个对象的属性赋值给另一个对象。虽然在 ES6 中,可以使用 Object.assign() 来实现这一功能,但是在一些低版本的浏览器中不支持该方法。

    4 年前
  • npm 包 slugo 使用教程

    本文将为大家介绍 npm 包 slugo 的使用教程,包括如何安装,如何使用以及常见问题解答。 什么是 slugo? slugo 是一款 npm 包,作用是将任意字符串转换为 URL 友好的 sl...

    4 年前
  • npm 包 marked3 使用教程

    前言 前端开发离不开文本编辑的处理,在 web 应用中常常需要将 Markdown 格式的文本转化为 HTML,此时可以使用很多开源的包来处理,其中较为流行的是 marked 包。

    4 年前
  • npm 包 svg-to-component 使用教程

    在前端开发中常常需要用到 SVG 图片,但是直接使用 SVG 图片会出现一些兼容性问题。为了解决这些问题,我们可以使用 npm 包 svg-to-component 将 SVG 图片转换成 React...

    4 年前
  • npm 包 svg-to-component-loader 使用教程

    SVG 是一种矢量图形格式,在 Web 应用中广泛使用。虽然可以直接在 HTML 中插入 SVG 图像,但是 SVG 本身仍旧有一些限制,比如不能直接在 CSS 中修改其属性,也不能直接向其中添加事件...

    4 年前
  • npm 包 aimer 使用教程

    npm 包 aimer 使用教程 在前端开发中,我们常常需要使用一些常用的工具库来增强我们的开发效率。而 npm 包就是其中一种非常重要的工具。对于前端开发来说,npm 包中最受欢迎的就是 jQuer...

    4 年前
  • npm 包 color-lib 使用教程

    当我们在前端开发过程中需要在页面上使用颜色时,通常我们需要不停地调整颜色值,直到达到满意的效果。这个过程很费时间,而且容易出错。在这个时候,使用 npm 包 color-lib 可以帮助我们更加轻松地...

    4 年前
  • npm 包 postcss-strip-inline-comments 使用教程

    在前端开发中,我们通常会使用 CSS 预处理器来编写更加优秀的 CSS 代码,其中就包含了各类注释,如注释版权、作者等信息。 然而,在 CSS 解析和编译阶段,这些注释不仅会使得编译速度变慢,还会增加...

    4 年前
  • npm 包 color-preset 使用教程

    color-preset 是一个优秀的 npm 包,它提供了现代化设计所需的色彩预设,使用它能够快速的为你的前端项目添加一套优美的配色方案,从而使得你的项目拥有更好的视觉效果。

    4 年前
  • npm 包 karma-growler-reporter 使用教程

    前言 在前端开发中,往往需要使用 Karma 进行单元测试。而 Karma 又支持多种报告器(reporter)来输出测试结果。本篇文章就来介绍 npm 包 karma-growler-reporte...

    4 年前
  • npm 包 babel-plugin-transform-xregexp 使用教程

    在前端应用中,正则表达式是一个非常重要的部分。而在 ECMA6 中引入了更强大的正则表达式库 —— XRegExp。XRegExp 使用起来更为简单方便,并且支持很多更高级的用法。

    4 年前
  • npm 包 jay-extend 使用教程

    在前端开发中,有时候我们需要对对象、数组或字符串进行一些扩展或操作。这时候,一个好用的工具库就尤为重要了。本文将介绍一个常用的 npm 包 jay-extend,它可以帮助我们快速方便地实现常用的对象...

    4 年前
  • npm 包 unicode-property-aliases 使用教程

    unicode-property-aliases 是一个 npm 包,它提供了 Unicode 属性和值的别名映射,方便在 JavaScript 中使用。本文将介绍这个包的用法和示例代码,帮助你更好地...

    4 年前
  • npm 包 unicode-property-value-aliases 使用教程

    前言 在日常开发中,我们经常会用到一些包含 Unicode 字符的字符串。不同的 Unicode 字符集合不同,属性值也不同,因此在处理这些字符串时,我们需要有一些包含 Unicode 属性值别名的工...

    4 年前
  • npm 包 minpubsub 使用教程

    简介 minpubsub 是一个基于订阅者/观察者设计模式的轻量级 JavaScript 发布订阅库,适用于前端和 Node.js 环境。 通过 minpubsub,我们可以在应用程序中使用发布订阅模...

    4 年前
  • npm 包 karma-html-detailed-reporter 使用教程

    前言 我假设你已经拥有了 karma 配置文件,并知道如何使用它。本文将介绍如何使用 karma-html-detailed-reporter ,它是一个 npm 包,用于生成可视化的测试报告。

    4 年前
  • npm 包 byteman 使用教程

    在前端开发中,有很多需要处理二进制数据的情况,例如文件上传、图片压缩等。而 npm 包 byteman 就是一款专门处理二进制数据的工具库,可以方便地对二进制数据进行解析、转换、生成等操作。

    4 年前
  • npm 包 cid-tool 使用教程

    前言 随着前端技术的不断发展,我们越来越多地使用 npm 包来提高我们的开发效率。cid-tool 是一个功能强大的 npm 包,它可以生成一种特殊的唯一标识符,称为 CID(Content Iden...

    4 年前
  • npm 包 eslint-config-standard-babel 使用教程

    npm 包 eslint-config-standard-babel 使用教程 ESLint 是一个很好的代码检查工具,可以帮助我们规范代码风格并找出一些潜在的问题。

    4 年前
  • NPM 包 dag-cbor-links 使用教程

    简介 dag-cbor-links 是一个用于生成和解析链接结构的 NPM 包,它是基于 CBOR 序列化格式实现的。dag-cbor-links 提供了用于创建链式结构的 JS API,可以帮助用户...

    4 年前

相关推荐

    暂无文章