コンポーネントとデータバインディング
Qwik フレームワークにおけるコンポーネントの作成とデータバインディングのプロセスを学びます。具体例を通して、コンポーネントの基本構造、プロパティの渡し方、そして状態管理の方法について理解を深めましょう。
コンポーネントの作成
目的
コンポーネントは、再利用可能な UI のビルディングブロックです。Qwik では、コンポーネントを通じてアプリケーションの UI を構築し、データを管理します。
実装例
- カウンターコンポーネントの作成:
Counter
コンポーネントを作成し、クリックイベントに応じてカウントアップする機能を実装します。
// src/components/Counter.tsx
import { component$, useStore } from '@builder.io/qwik';
export const Counter = component$(() => {
const state = useStore({ count: 0 });
return (
<div>
<button onClick$={() => state.count++}>Count: {state.count}</button>
</div>
);
});
このコンポーネントは、useStore
フックを使用してローカル状態を管理します。count
プロパティがボタンクリックで増加します。
データバインディング
目的
データバインディングは、コンポーネントの状態と UI の同期を保つプロセスです。Qwik では、宣言的にデータを UI にバインドすることができます。
実装例
- カウンター値のバインディング:
- 上記の
Counter
コンポーネントで、ボタン内のテキストにcount
状態をバインドします。
- 上記の
<button onClick$={() => state.count++}>Count: {state.count}</button>
この例では、ボタンのテキストがstate.count
の値をリアルタイムに反映します。ユーザーがボタンをクリックすると、count
の値が増加し、UI が自動的に更新されます。