react经验:在nextjs中使用motion组件
什么是motion组件?
一种动画组件
motion组件文档
在nextjs中的应用步骤
1.安装motion
npm i framer-motion
2.在next.config.js中配置转义
export default {transpilePackages: ['framer-motion']
}
3.开始应用
**注意要点:**在服务端渲染不可直接用,但凡用到motion的地方都要封装成客户端组件
举例:需要一个motion.div作为容器
首先把motion.div封装成客户端组件
'use client'
import { motion, MotionProps } from "motion/react"declare type Props = {children?:React.ReactNode
} & MotionPropsexport default function MotionDIV(props: Props) {return <motion.div {...props}>{props.children}</motion.div>
}
然后在需要的页面调用这个组件
import MotionDIV from './MotionDIV'
const variants = {hidden: { opacity: 0, y: 50 },visible: { opacity: 1, y: 0 },
};
export default async function HomePage(){return (<MotionDIV className="root"variants={variants}initial="hidden"whileInView="visible"transition={{ duration: 0.5 }}viewport={{ once: true }}>hello world</MotionDIV>)
}
以上。