sotszk / app-clone-next

最近(2023 年初旬)のフロントエンド事情を、実運用を想定した Next.js + React アプリを開発しながらキャッチアップといいますか、ベストプラクティスを探っていく用に作ったリポジトリです

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

APP CLONE NEXT

最近(2023 年初旬)のフロントエンド事情を、実運用を想定した Next.js + React アプリを開発しながらキャッチアップといいますか、ベストプラクティスを探っていく用に作ったリポジトリです。

使用技術

Getting started (for 自分)

Planet Scale の DB と接続

$ pscale connect my_database main --port 3309
# Secure connection to database my_database and branch main is established!

ローカル環境で開発

yarn dev
# next
# started server on port 3000

Then, access http://localhost:3000

Next.js v13 の App Dir (Experimental) 考察

  • /app でも /src/app でも OK
  • 使いたいが・・・
    • Server Component 関連のエラーが頻発する
    • コンポーネントで Vanilla Extract のスタイルを読み込むとエラーが起きるので、とりあえず使用中止。実験的機能だしナ・・・。
      • 気が向いたら原因調査してみる

React + CSS 考察 (WIP)

1. CSS Modules

  • アリ
  • コード補完も VSCode Extension でばっちり
  • 当然 PostCSS Preset Env を入れて Nesting とか Custom Media とかも入れる
  • SCSS でもいい

2. Vanilla Extract

  • アリ。ゼロランタイム最高。
  • nanka-style.css.ts というファイル接尾辞は少し違和感あり
  • CSS Modules とほぼ感覚は一緒(少しだけ学習コストはあるが)

こんな感じにすればかなり CSS Modules ライクに書ける。

import { style } from "@vanilla-extract/css";

export const nav = style({
  padding: "16px 0",
});
import * as styles from './nav.css';

export default function Nav() {
  return (
    <nav className={styles.nav}>
      {/* ... */}
    </nav>
  )
}

備考

  • パフォーマンスを考慮して StyledComponents 系の CSS in JS は避けている(チリツモ案件)

PostCSS を使う

Next.js はビルトインで PostCSS が使える。ただし、デフォルトの postcss.config.json をカスタムする場合、デフォルトの設定が完全に無効になる。つまり上書きすることになる。

デフォルトの設定に入っている postcss-preset-envpostcss-flex-bugs-fixes のパッケージもインストールし直す必要があるので注意。

Customizing Plugins | PostCSS | Next.js

About

最近(2023 年初旬)のフロントエンド事情を、実運用を想定した Next.js + React アプリを開発しながらキャッチアップといいますか、ベストプラクティスを探っていく用に作ったリポジトリです


Languages

Language:TypeScript 76.3%Language:CSS 12.8%Language:JavaScript 10.4%Language:Shell 0.4%