Open3
Next.js13の調べごと
アニメーション付けたい
基本的にFramer motionを使ってもいい。
ただし、アニメーションではuse clientを使う
"use client";
import React, { FunctionComponent, ReactNode } from "react";
import { motion } from "framer-motion";
const slideInAnimation = {
hidden: { opacity: 0, x: "-100%" },
visible: { opacity: 1, x: "0%" },
};
interface Props {
children: ReactNode;
}
export const SlideIn: FunctionComponent<Props> = ({ children }) => {
return (
<motion.div
initial="hidden"
animate="visible"
variants={slideInAnimation}
transition={{ duration: 0.5 }}
>
{children}
</motion.div>
);
};
useRouter
useRouterはnext/navigationから取得するようになった。
layout
Root layout
アプリディレクトリのトップレベルに定義され、すべてのルートに適用される。
<html> と <body> タグを定義する必要がある。
nested layout
フォルダ内に定義されたレイアウトは特定のルートセグメントに適用される。
ファイル階層内のレイアウトはデフォルトでネストされている。
(例: app/dashboard/layout.js)