カート
カートの中の商品の数を変えたり、削除したりします。小計・送料・合計は、中身に合わせて自動で計算します。
このコードは 1つのファイルでできています。
CartPage.tsx
カートのページ
使い方(Next.js の場合)
自分のプロジェクトで、この画面を出すまでの3つの手順です
- 1
ターミナルで、使う部品とライブラリを入れる(1回だけ)
npx shadcn@latest add button
npm i lucide-react
shadcn/ui をまだ入れていないプロジェクトでは、先に npx shadcn@latest init を1回打ちます
- 2
ファイルを、この場所に貼る
my-app/ ├─ components/ │ └─ cart/ │ └─ CartPage.tsx ← 上の窓でコピーしたもの └─ app/ └─ cart/ └─ page.tsx ← 手順3で作るフォルダがなければ作ります。
- 3
ページのファイルで読みこむ
import CartPage from "@/components/cart/CartPage" export default function Page() { return <CartPage /> }app/cart/page.tsx に書きます。npm run dev で開いて、/cart に行くと出ます
ここがポイント
- 1
一覧の中の1つだけを書き換える・消す
数を変えるときは map で「その商品だけ」数を変えた一覧を作る。削除は filter で「その商品以外」を残した一覧を作る。元の一覧を直接いじらない
- 2
合計は、覚えずに毎回計算する
小計・送料・合計は state にせず、カートの中身から毎回計算する。中身を変えれば、合計も自動で合う(覚えておくと、ずれる原因になる)
- 3
空っぽのときの表示を用意する
全部削除したら「カートは空っぽです」と出す。何もない一覧と、0円の合計だけが出ると、壊れたように見える
使った道具
押すと、第2部のくらべるページへ