久しぶりにclient appを作ろうとしたら 「create-react-app はもう推奨されとらんで」と言われてマジか??となったので、似たようなことのやり方をメモっておく。
vite がミニマムかつ create-react-app みたいなことができるらしいので使うのと、routerとして薄めな wouter、CSSは tailwind を使っていく。
boilerplateの用意
npm create vite hoge --template react-ts
React TypeScript+SWC を選択
cd hoge git init git add * .eslintrc.cjs .gitignore git commit -a -m "initial commit"
npm install npm install wouter npm run dev
サーバが動くことを確認。
tailwindを入れる
command
npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p
tailwind.config.js
module.exports = {
content: [
"./index.html",
"./src/**/*.{js,jsx,ts,tsx}",
],
theme: {
extend: {},
},
plugins: [],
}
src/index.css
@tailwind base; @tailwind components; @tailwind utilities;
App.tsx
// import { useState } from 'react' import { Router, Route, Link } from 'wouter'; import { useHashLocation } from 'wouter/use-hash-location'; import './App.css' function App() { return ( <> <Router hook={useHashLocation}> <h1 className="text-3xl font-bold underline mb-6"> Hello world! </h1> <Link href='/test' className="bg-blue-600 hover:bg-blue-500 text-white rounded px-4 py-2">LINK</Link> <Route path="/test" component={Test} /> </Router> </> ) } function Test() { return <div> <h1 className="text-3xl font-bold underline mb-6"> TestPage </h1> <Link href="/" className="bg-green-600 hover:bg-green-500 text-white rounded px-4 py-2">Return</Link> </div> } export default App
作る
あとはtailwindのコンポーネント一覧を見ながら作っていく。
Tailwind CSS Components - Tailwind UI
一般公開しないやつなのでhash routingで作る。
hash routingの場合web上にあるサンプルだとhooksを自ら定義するサンプルが多く見つかるが、下記の二行を書くだけで使えるようなったっぽい。
import { useHashLocation } from 'wouter/use-hash-location';<Router hook={useHashLocation}>