Lit の基礎
Lit は、Web Components の開発を簡素化し、より宣言的で効率的な方法を提供します。以下は、Lit を使用して基本的なカスタムエレメントを作成するためのステップです。
1. カスタムエレメントの作成
最初のステップとして、シンプルなメッセージを表示するカスタムエレメントを作成します。
// my-element.js
import { LitElement, html } from 'lit';
class MyElement extends LitElement {
render() {
return html`<p>Hello, Lit!</p>`;
}
}
customElements.define('my-element', MyElement);
このコードは、<my-element>
という新しいカスタムエレメントを定義します。render
メソッド内で、html
テンプレートリテラルタグを使用して、表示する HTML を宣言的に定義します。
2. プロパティと属性の管理
Lit では、コンポーネントの状態をプロパティとして管理し、それをテンプレートに反映させることができます。以下のコードは、name
プロパティを持つエレメントを示しています。
// my-greeting.js
import { LitElement, html, property } from 'lit';
class MyGreeting extends LitElement {
@property({ type: String }) name = 'World';
render() {
return html`<p>Hello, ${this.name}!</p>`;
}
}
customElements.define('my-greeting', MyGreeting);
@property
デコレーターを使用することで、name
プロパティがリアクティブになり、その値が変更されると自動的にテンプレートが更新されます。
3. イベントの処理
Lit を使用すると、イベントリスナーを簡単にテンプレートに追加できます。以下のコードは、ボタンクリックイベントを処理する方法を示しています。
import { LitElement, html } from 'lit';
class MyButton extends LitElement {
handleClick() {
alert('Clicked!');
}
render() {
return html`<button @click="${this.handleClick}">Click Me</button>`;
}
}
customElements.define('my-button', MyButton);
@click
ディレクティブを使用して、クリックイベントにリスナーを追加し、handleClick
メソッドを呼び出します。
4. スタイリング
Lit では、コンポーネント内のスタイルをカプセル化することができます。以下の例では、コンポーネント内のテキストの色をスタイリングします。
import { LitElement, html, css } from 'lit';
class MyStyledElement extends LitElement {
static styles = css`
p {
color: red;
}
`;
render() {
return html`<p>Styled Text</p>`;
}
}
customElements.define('my-styled-element', MyStyledElement);
static styles
プロパティを使用して CSS を定義し、コンポーネント内のスタイルをカプセル化します。