我想添加一个全屏加载器到我的Next.JS应用程序,只有在刷新页面或第一次加载它时才会出现.在不同页面之间进行路由时,它不应出现.另外,我想在页面之间导航时添加fade个过渡,就像这里的https://www.vidstack.io/个.我如何在Next.JS中做到这一点?下面是我想要实现的全屏加载的示例(https://stackblitz.com/edit/stackblitz-starters-vj4saw?file=app%2Flayout.tsx).也许framer-motion也可以吗?

推荐答案

您可以使用Reaction的framer-motion库来制作过渡效果.下面是一个简单的例子:

import { motion } from "framer-motion";

export default function PageTransition({ children }) {
  return (
    <motion.main
      initial={{ opacity: 0 }}
      animate={{ opacity: 1 }}
      transition={{ duration: 1 }} // Adjust the duration as needed
    >
      {children}
    </motion.main>
  );
}

用途:

"use client"
import PageTransition from "@/components/PageTransition";
import React from 'react'

export default function SimplePage() {
  return (
    <>
      <PageTransition>
        <main className="text-center uppercase">
          <p>
            Text.
          </p>
        </main>
      </PageTransition>
    </>
  )
}

Reactjs相关问答推荐

Reaction-路由v6动态路径RegExp

更改购物车中的产品数量后,PayPal Reaction/Next JS按钮未更新

如何在整个应用程序中显示通用弹出窗口中的点击事件

左边框不在图表中显示

试图从Amazon-Cogito-Identity-js模拟CogitoUser.authateUser,并将其获取为未定义的S

有没有比;KeyableShell;组成部分

拖放 - 将排序保存到数组字段

如何在 TimePicker 中更改时钟 colored颜色 和确定按钮字体 colored颜色 - MUI React

在 React 中将 MUI 样式外包到单独的文件中?

在Vite React上获取Amplify的环境变量

基于 React/NextJS Timer 的文本淡入/淡出不起作用

当我使用 Firebase Auth 在 React 中刷新主页时显示登录页面

为什么 createSlice 中的 reducer 不能以不同的方式改变状态?

我正在try 将一组加载程序函数发送到我的路由,它抛出一个错误 Handler is not a funtion in a reactJs application

如何禁用来自 React Native API 的某些特定项目的可touch 不透明度

如何从其他组件访问 useQuery refetch 方法?

从输入中获取数字时,react 计数器不会增加

在react 路由dom版本6中的组件内添加路由

您无权使用阻止 webRequest 侦听器.请务必在 list 中声明 webRequestBlocking 权限

Cypress 中的 process.env 空对象