1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Next.js】Vue出身者が行うライブラリ選定

Posted at

Laravel + Vue, Nuxt 構成出身の私が、現時点で行ったライブラリ選定をまとめるぞ。
おすすめがあればコメント欄で教えてほしい...。

Database

Laravel なら全部入っているが、Next の場合開発者にお任せされている。

まず ValidationZod がおすすめ。
型生成なども合わせて行うことが可能なので、jsonスキーマとの相性が最高。

DB周り、Model Migration SeederDrizzle ORM がおすすめ。
新興 ORM なのだが、すべてが TypeScript で構築可能で、とてもタイプフレンドリー。
しかも簡易DBビューワーが付いてくるので、至れり尽くせり。

書き味は、SQLが関数で表現されている感じのシンプルな実装。
Kysely に非常に近い。
json など一部の記述はまだ未対応なので、kyselyと組み合わせる変態なライブラリも用意されている。

有名なのは Prisma だけど、これは独自言語のスキーマな点がBAD...。
やはり、TypeScript で SQL を書けたほうが良いと思う。

フォーム系

フォームを作成するなら React Hook Form 一択な雰囲気がある。
デフォルト値の設定から、zod バリデーションの組み込み、ハンドラーまでを担当。

useFieldArray() というリストの追加、削除のラッパーまで用意されているので、使っていてとても楽しい。

React がレンダリングに特化しているので、Vue のように柔軟に値を持たせて、という思想で画面を作ると、コードがごちゃごちゃしてしまう。
汎用機能は外出しするのがよさそう。

UI 系

拡張性を考えると、TailwindCSS ベースのものが良いと思う。

ただ、React の UIライブラリではなく、Tailwind の class セットを提供しているものが多い。
UIライブラリの導入は、開発速度やデザインの統一感であると考えるので、自身でコピペしてコンポーネントを作成したりの手間が一段階増えるのはいかがなものか。
(デザインをフルスクラッチするなら、更にに要らないし...)

このあたりがおすすめ。
個人的には daisyUI がかわいくてとても好き。

アイコンは React Icon を使っておけばいい感がとても強い。
全部入りである...。

linter

LinterESLint で十分です。
PrettierESLint Stylistic を使って、ESLint に集約するとよい。

世の中には Biome というイケイケなやつがいるがあれは罠だ...。
HTML に対応してねぇ...。

未来に期待して、ESLint のエコシステムを利用するのが賢い。
Flat Config って言っても、設定ファイル JSON をマージするイメージなので、慣れたら簡単よ。

その他

チュートリアルにも出てくる clsx
className に対して、Vue のように配列やオブジェクトを渡すことが可能。

これが無いと Tailwind の開発できなくない...?
レイアウトコードとデザインコードは分けたいマン。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?