スターターキット
Litスターターキットは、再利用可能なLitコンポーネントのためのプロジェクトテンプレートであり、他の人が利用できるように公開できます。
ローカルでコンポーネントの作業を開始するには、以下のスタータープロジェクトのいずれかを使用できます
両方のプロジェクトでLitコンポーネントを定義しています。また、コンポーネントの開発、lint、およびテストのためのオプションのツールセットを追加しています
- 依存関係を管理するためのNode.jsとnpm。Node.js 10以上が必要です。
- ローカル開発サーバー、Web Dev Server。
- ESLintとlit-analyzerを使用したlint。
- Web Test Runnerを使用したテスト。
- web-component-analyzerとeleventyで構築された静的なドキュメントサイト。
これらのツールは、Litを操作するために必須ではありません。これらは、優れた開発者エクスペリエンスのための可能なツールセットの1つを表しています。
代替の開始点。 公式のLitスタータープロジェクトの代替として、Open WCプロジェクトには、Litを使用したWebコンポーネント用のプロジェクトジェネレーターがあります。 Open WCスクリプトは一連の質問をし、プロジェクトの足場を築きます。
スタータープロジェクトをダウンロードする
「スタータープロジェクトをダウンロードする」へのパーマリンクプロジェクトをローカルで試す最も簡単な方法は、スタータープロジェクトの1つをzipファイルとしてダウンロードすることです。
GitHubからzipファイルとしてスタータープロジェクトをダウンロードします
zipファイルを解凍します。
依存関係をインストールします。
cd <project folder>
npm i
GitHubで入手したいですか? gitに慣れている場合は、zipファイルをダウンロードする代わりに、スタータープロジェクト用のGitHubリポジトリを作成することをお勧めします。 JavaScriptスタータープロジェクトまたはTypeScriptスタータープロジェクトから独自のリポジトリを作成するには、GitHubテンプレートリポジトリ機能を使用できます。次に、上記のように、新しいリポジトリをクローンし、依存関係をインストールします。
プロジェクトを試してみる
「プロジェクトを試してみる」へのパーマリンクスターターのTypeScriptバージョンを使用している場合は、プロジェクトのJavaScriptバージョンをビルドします
npm run build
ファイルが変更されたときにファイルを監視し、再構築するには、別のシェルで次のコマンドを実行します
npm run build:watch
スタータープロジェクトのJavaScriptバージョンを使用している場合は、ビルドステップは必要ありません。
開発サーバーを実行します
npm run serve
ブラウザータブでプロジェクトのデモページを開きます。 例:
サーバーが別のポート番号を使用している場合があります。 ターミナル出力のURLで正しいポート番号を確認してください。
コンポーネントを編集する
「コンポーネントを編集する」へのパーマリンクコンポーネント定義を編集します。 編集するファイルは、使用している言語によって異なります
- JavaScript。プロジェクトルートにある
my-element.js
ファイルを編集します。 - TypeScript。
src
ディレクトリにあるmy-element.ts
ファイルを編集します。
コードで探すいくつかのこと
コードは、コンポーネント(
MyElement
)のクラスを定義し、<my-element>
という名前のカスタム要素としてブラウザに登録します。@customElement('my-element')
export class MyElement extends LitElement { /* ... */ }
export class MyElement extends LitElement { /* ... */ }
customElements.define('my-element', MyElement);
コンポーネントの
render
メソッドは、コンポーネントの一部としてレンダリングされるテンプレートを定義します。 この場合、いくつかのテキスト、いくつかのデータバインディング、およびボタンが含まれています。 詳細については、テンプレートを参照してください。export class MyElement extends LitElement {
// ...
render() {
return html`
<h1>Hello, ${this.name}!</h1>
<button @click=${this._onClick}>
Click Count: ${this.count}
</button>
<slot></slot>
`;
}
}
コンポーネントはいくつかのプロパティを定義します。 コンポーネントは、これらのプロパティの変更に応答します(たとえば、必要に応じてテンプレートを再レンダリングするなど)。 詳細については、プロパティを参照してください。
export class MyElement extends LitElement {
// ...
@property({type: String})
name = 'World';
//...
}
export class MyElement extends LitElement {
// ...
static properties = {
name: {type: String}
};
constructor() {
super();
this.name = 'World';
}
// ...
}
コンポーネントの名前を変更する
「コンポーネントの名前を変更する」へのパーマリンクコンポーネント名を「my-element」からより適切な名前に変更することをお勧めします。 これは、プロジェクト全体でグローバルな検索と置換を実行できるIDEまたは他のテキストエディターを使用するのが最も簡単です。
TypeScriptバージョンを使用している場合は、生成されたファイルを削除します
npm run clean
プロジェクト内のすべてのファイル(
node_modules
フォルダーを除く)で、「my-element」を新しいコンポーネント名で検索および置換します。プロジェクト内のすべてのファイル(
node_modules
フォルダーを除く)で、「MyElement」を新しいクラス名で検索および置換します。新しいコンポーネント名に合わせてソースファイルとテストファイルの名前を変更します
JavaScript
src/my-element.js
src/test/my-element_test.js
TypeScript
src/my-element.ts
src/test/my-element_test.ts
TypeScriptバージョンを使用している場合は、プロジェクトを再構築します
npm run build
テストして、コンポーネントがまだ動作していることを確認します
npm run serve
次のステップ
「次のステップ」へのパーマリンクコンポーネントに機能を追加する準備はできましたか? 最初のLitコンポーネントの構築についてはコンポーネントに、テンプレートの作成の詳細についてはテンプレートをご覧ください。
テストの実行とその他のツールの使用の詳細については、スタータープロジェクトのREADMEを参照してください
コンポーネントをnpm
に公開する方法については、公開を参照してください。