Repolode
infernojs

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. 1

    コアパッケージをインストールする

    npm install --save inferno
  2. 2

    Babel用のJSXコンパイラプラグインをインストールする

    npm install --save-dev babel-plugin-inferno
  3. 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 の数値は毎日更新されます。

関連プロジェクト