Virtual DOMを基盤とする、React互換のモダンなコンポーネントAPIを備えた高速な約4kBのUIライブラリ。
infernojs/inferno
クライアントとサーバーで高性能なユーザーインターフェースを構築するための、非常に高速なReact風JavaScriptライブラリです。
- スター
- 16,452
- フォーク
- 642
- 未解決の Issue
- 36
- 最終コミット
- 一昨日
これは何?
Infernoは、ユーザーインターフェースを構築するためのReact風JavaScriptライブラリです。Reactのコンポーネントモデル、一方向のデータフロー、ライフサイクルの概念を維持しつつ、実行時の描画速度を重視しています。特に、リアルタイムのデータビューや大規模なDOMツリーに適しています。
高速化はコンパイル時の最適化によって実現されています。InfernoのBabel、SWC、TypeScript向けJSXプラグインは、createElementの呼び出しではなく、vNodeを直接生成する呼び出しを出力します。また、$HasVNodeChildrenなどの子要素フラグを使えば、子要素の構造を開発者が明示できるため、実行時の正規化を省略できます。イベントハンドラーでのアロー関数やbind呼び出しを避けるlinkEventも用意されており、inferno-serverによるサーバーサイドレンダリングにも対応しています。
InfernoにはReactと異なる点がいくつかあります。部分的な合成イベントシステム、関数コンポーネントのライフサイクルフック、制御されたフォームコンポーネントを備えています。一方、React Nativeには対応していません。JSXは必須ではなく、hyperscriptやcreateElementも利用できます。
主な機能
- 01一方向のデータフローと馴染みのあるライフサイクルメソッドを備えた、React風のコンポーネントAPI
- 02Reactにはない、関数コンポーネントのライフサイクルイベント
- 03部分的な合成イベントシステムと、bindやクロージャを避けるためのlinkEventヘルパー
- 04inferno-serverとhydrateによるクライアントおよびサーバーでのレンダリング
- 05制御されたinput、select、textareaコンポーネント
- 06Babel、SWC、TypeScript向けのコンパイル時JSXプラグイン
ユースケース
- 頻繁に更新されるリアルタイムダッシュボードやデータビューの構築
- 実行時のパフォーマンスが重要となる非常に大規模なDOMツリーの描画
- 小規模なReact風フロントエンドを、より軽量なランタイムへ移行
- クライアント側でのハイドレーションが必要な、サーバーサイドレンダリング対応Webアプリ
クイックスタート
- 1
コアパッケージをインストールする
npm install --save inferno - 2
Babel用のJSXコンパイラプラグインをインストールする
npm install --save-dev babel-plugin-inferno - 3
render関数を使ってコンポーネントをDOM要素に描画する
使う前に知っておきたいこと
- InfernoはReact Nativeをサポートしていません。
- Infernoはレガシーな文字列refをサポートしていないため、それらに依存するコードは変更が必要です。
- InfernoのJSXコンパイル時最適化を利用するには、対応するバージョンのInfernoコンパイラプラグインが必要です。
トピック
よくある質問
- inferno とは?
- クライアントとサーバーで高性能なユーザーインターフェースを構築するための、非常に高速なReact風JavaScriptライブラリです。 Infernoは、ユーザーインターフェースを構築するためのReact風JavaScriptライブラリです。Reactのコンポーネントモデル、一方向のデータフロー、ライフサイクルの概念を維持しつつ、実行時の描画速度を重視しています。特に、リアルタイムのデータビューや大規模なDOMツリーに適しています。
- inferno は無料で使えますか?ライセンスは?
- inferno は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- inferno は今もメンテナンスされていますか?
- 活発にメンテナンス中。inferno の最終コミットは 2026年10月23日 です。
- inferno は何に使えますか?
- 頻繁に更新されるリアルタイムダッシュボードやデータビューの構築 実行時のパフォーマンスが重要となる非常に大規模なDOMツリーの描画 小規模なReact風フロントエンドを、より軽量なランタイムへ移行 クライアント側でのハイドレーションが必要な、サーバーサイドレンダリング対応Webアプリ
- inferno のインストール方法は?
- コアパッケージをインストールする: npm install --save inferno Babel用のJSXコンパイラプラグインをインストールする: npm install --save-dev babel-plugin-inferno render関数を使ってコンポーネントをDOM要素に描画する
- inferno はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/infernojs/inferno
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Virtual DOMではなく、細粒度のリアクティビティでJSXを実際のDOM更新にコンパイルする宣言的なJavaScript UIライブラリ。
Omiは、JSX、Signalベースのリアクティビティ、ルーター、Tailwind対応を備え、再利用可能なカスタム要素の構築を目指すWeb Componentsフレームワークです。
Firebase JS SDKにAngularバインディングを提供し、依存性注入、RxJS observables、Firebaseサービス向けのAngularに適したAPIを実現します。
Webアプリケーション構築向けのエンタープライズ品質のReact UIコンポーネントライブラリ兼デザイン言語。
Vue向けのMaterial Design UIコンポーネントフレームワーク。Webアプリケーション構築に使える、手作りのレスポンシブなコンポーネントを提供します。