Viki

Viki 写东西的地方

努力上进且优秀
github
email
x
steam
bilibili
douban

【オープンソース】モダンで高品質なReact Hooksライブラリ

スクリーンショット

紹介#

@shined/react-useは、SSR(サーバーサイドレンダリング)に対応し、包括的かつ高度に最適化された React Hooks ライブラリであり、柔軟で効率的なフックソリューションを提供します。完全にTypeScriptで開発され、対話的なドキュメントには豊富な例が含まれています🔥。

VueUseからの影響を受けつつ、react-useahooks、および他の多くの優れたライブラリからも影響を受けました。オープンソースコミュニティ、特に上記のライブラリの作者に感謝します。彼らの優れた仕事とインスピレーションに感謝します。

🚀 特徴#

  • 柔軟性ElementTargetRef GetterPausableなどの特徴があります。
  • トリミング最適化ESMを使用した設計とデリバリーで、必要なコンテンツのみをインポートします。
  • 対話的なドキュメント:ライブな例とPlaygroundを備えています。
  • 軽量依存関係なしであることを自負しています。
  • SSR に対応:すべてのフックがサーバーサイドレンダリング(SSR)と互換性があることを保証します。
  • 一流の TypeScript サポートTypeScriptで記述され、名前付きの型定義とJSDocコメントを備えています。
  • 包括的なテスト:(近日公開予定...)

⚡️ 最適化#

  • 安全な状態:すべての状態フックに対して安全な状態戦略を実装し、バグや望ましくない動作を減らしました。
  • 関数の安定性:デフォルトでは、エクスポートされるすべての関数は安定化の恩恵を受けます。
  • 最新の状態:内部的に最新の状態を使用することで、古いクロージャの問題を回避します。
  • 不要な再レンダリングの削減Pausableインスタンスを使用して、特定のフックの動作をオプションで制御できます。

その他#

モダンな技術選択、リポジトリの標準化設定#

  1. 主流の pnpm + monorepo アーキテクチャ、ソースコードとドキュメント、サンプルプロジェクトを共存させる
  2. .node-version、packageManager を使用して Node.js とパッケージマネージャのバージョンを固定する
  3. ソースコードのビルドには tsup を使用し、esbuild で駆動し、軽量で高速なビルドを実現する
  4. Rust ベースのモダンツールである Biome を使用してプロジェクトの Lint、フォーマットを行う
  5. テストには効率的でモダンな Vitest を使用し、ESM を優先する
  6. ドキュメントには Docusaurus を使用し、ドキュメントデモには UnoCSS を使用する
  7. GitHub Action を設定し、CI(lint)、リリース、GitHub Pages のプロセスを標準化する
  8. npm の provenance パブリッシュ認証を設定し、サプライチェーン攻撃を防ぐ
  9. バージョン管理には bumpp を使用し、バージョンの増加、タグ、コミット、プッシュを一括で行う
  10. conventional-changelog-cli を使用して更新ログ(CHANGELOG.md)を自動生成する
  11. changelogithub を使用してリリースを標準化する(コミットメッセージに基づいて GitHub リリースを生成および公開する)
  12. package.json を規格化し、exports、sideEffects、typesVersions などを含む
  13. パッケージのリリース前に clean-pkg-json を実行して、package.json がクリーンで規格化されていることを確認する
  14. ...

基礎的な Hooks を充実させ、上位の機能にサービスを提供する#

  1. useSafeState => 状態フックの安全性を実現し、ディープコンペアをサポートします
  2. useStableFn => Hooks からエクスポートされる関数の参照が安定し、内部のレンダリング最適化の一部です
  3. useTargetElement => すべての ElementTarget パラメータの処理を統一し、要素の位置指定を簡素化します
  4. usePausable => 各フックの内部レンダリング最適化の一部として、一部のフックの動作を一時停止できます
  5. useSupported => 互換性のある API のアクセシビリティステータスの統一
  6. useEventListener => 各種のイベントインターフェースを持つインスタンスのイベント操作を処理します
  7. useLatest => 古いクロージャの問題を回避するために安定した Ref を使用します
  8. useEffect から派生した一連の Hooks(create-xxx-effect)は、基礎的な依存関係として使用されます
  9. ...

関連リンク#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。