在 Reactjs 应用程序中查看过渡动画

在 reactjs 应用程序中查看过渡动画

有一天,我想为网站创建快速从列表动画中删除项目的功能。这次跳过react transition group,尝试新的view transition,节省时间。

当很少有代码能做到这一点时,为什么要编写大量代码。

view transition api 仅适用于 chrome,但我不在乎。

关键是 document.startviewtransition.

但是需要在state之前、state之后建立dom,但react.js不允许。

react.js 反应式。不同步。 document.startviewtransition 需要同步。

问谷歌学习:

import { flushsync } from "react-dom";flushsync(() => setstate(...));

登录后复制

我写钩子:

import { usestate } from "react";import { flushsync } from "react-dom";export const useviewtransition =  typeof document !== "undefined" && "startviewtransition" in document    ? (newvalue: t) => {        const [value, setvalue] = usestate(newvalue);        if (value !== newvalue) {          document.startviewtransition(() => {            flushsync(() => {              setvalue(newvalue);            });          });        }        return value;      }    : (value: t) => value;

登录后复制

如果使用usequery

const { data: newmsgs } = usequery({  querykey: ["msgs"],  queryfn: msgs.all(25)});const msgs = useviewtransition(newmsgs);return (  
    {msgs?.map(item => (
  1. {item.title}
  2. ))}
);

登录后复制

现在当 usequery 更新时,hook 调用 document.startviewtransition 然后 setstate。

需要全局css

我添加global.css:

@supports (view-transition-name: none) {  ::view-transition-group(root) {    animation-duration: 0s;  }  ::view-transition-group(.mymsg) {    animation-duration: 0.4s;  }}

登录后复制

这告诉 chrome:不要转换整个页面,只转换列表项。

现在消息列表动画工作了。非常好。

以上就是在 Reactjs 应用程序中查看过渡动画的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2854163.html

(0)
上一篇 2025年3月10日 14:46:34
下一篇 2025年3月8日 17:21:13

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • ⏰ 你的声音很重要 – CSS 调查现已开放!

    嘿? 本周五,Sprintfolio 将举办Designer + Dev Mixer。我正计划参加并且对此感到非常兴奋! 这将是与设计师和开发人员建立联系、交流见解并促进集体成长的绝佳机会。 我强烈推荐加入 – 完全免费!谁有兴…

    2025年3月10日
    200
  • ust-Know 高级 Tailwind CSS 实用程序可增强开发体验

    tailwind css 以其实用性优先的方法而闻名,使开发人员能够直接在 html 中创建高度可定制的设计。除了基础知识之外,掌握高级实用程序还可以显着增强您的开发工作流程,使其更快、更高效。在这里,我们将探索每个开发人员都应该知道的六个…

    2025年3月10日 编程技术
    200
  • 掌握 Web 动画:CSS 与未优化和优化的 JavaScript 性能

    网页动画可以显着改善用户体验,但如果实施不仔细,也会影响网站性能。在本文中,我将比较三种不同的方法来对大小脉冲的圆形元素进行动画处理。我将使用 css、未优化的 javascript 和优化的 javascript,并向您展示如何使用 ch…

    2025年3月10日
    200
  • 仅使用 CSS 实时测试 HTML 和 CSS 的实用方法

    最近,我公开了一个我为创建放射状设计而开发的 CSS 框架。在开发过程中,我遇到了一些挑战,包括测试不同的功能。我注意到 CSS linter 和其他工具不允许我了解为什么某些东西不起作用,即使没有基本错误。另一个典型的 CSS 问题是如何…

    2025年3月10日
    200
  • React 中的 CSS 冲突

    ui 是我们开始输入逻辑以完成前端之前的第一步。因此,我们编写标记,然后编写获得所需用户界面所需的基本样式。在编写标记时,我们必须创建有意义的类名来寻址和访问 html 标记并向其添加样式。通过简单的用户界面和不同的标签,我们可以或多或少轻…

    2025年3月10日 编程技术
    200
  • 免费 Vanilla CSS 模板的最佳网站

    这是最好的网站的综述,您可以在其中找到并下载免费的 css 模板。我们专注于不使用任何框架的普通 css 模板。这些高质量的项目将为您的网站、登陆页面、博客和作品集提供支持。 在线空间中有许多模板创建者。以下是让下面提到的这些人脱颖而出的原…

    2025年3月10日 编程技术
    200
  • 《Insect Particlizer》像素操作与 CSS 结合的实验

    canvas..多么美丽的名字,并不能表达我对这个api的喜爱程度,虽然一开始对我来说很糟糕,但经过一些尝试和错误,我理解了它,甚至尝试用它创建不常见的东西这让我的 ide 崩溃了好几次。这里的这个实验只是我在前端之旅中经常做的无数实验之一…

    2025年3月10日
    200
  • 我如何编写 CSS 选择器

    CSS 方法有很多,但我都讨厌它们。有些多(顺风等),有些少(BEM、OOCSS 等)。但归根结底,它们都有缺陷。 当然,人们使用这些方法有充分的理由,并且解决的许多问题我也遇到过。因此,在这篇文章中,我想写下我自己的关于如何保持 CSS …

    2025年3月10日
    200
  • CSSseudo-Classes and Pseudo-Elements: An In-Depth Look

    简介 嘿,了不起的人们。今天,我们将深入研究 css 中的伪类和伪元素的世界。这些是我们 css 工具包中的强大工具,可以帮助我们以独特的方式定位和设计元素,使我们的工作更加高效,使我们的网页更加动态。 我们将从基础知识开始,了解什么是伪类…

    2025年3月10日
    200
  • CSS 布局 – 浮动、Flexbox 和网格

    第 5 讲:css 布局 – 浮动、flexbox 和网格 在本次讲座中,我们将深入探讨在 css 中创建布局的基本技术。了解如何使用浮动、flexbox 和网格构建内容将使您能够构建响应灵敏且组织良好的网站。在本讲座结束时,您…

    2025年3月10日
    200

发表回复

登录后才能评论