ホームページ ウェブフロントエンド jsチュートリアル ハンドルバー4.0を備えたインラインの部分的およびデコレータを使用します

ハンドルバー4.0を備えたインラインの部分的およびデコレータを使用します

Feb 18, 2025 am 09:12 AM

Using Inline Partials and Decorators with Handlebars 4.0

クライアント側とサーバー側のレンダリング用の人気のJavaScriptテンプレートライブラリであるHandleBarsは、改善されたテンプレート管理のための口ひげ仕様を拡張します。 新規参入者の場合は、複数のコースを介してハンドルバーを使用してJavaScriptテンプレートを探索することをお勧めします。 ハンドルバー4.0(2015年9月)は、大幅な強化を導入しました:インラインの部分的およびデコレーター。この記事では、構文と最適な使用法の詳細を説明します。

重要な概念:

ハンドルバー4.0の重要な機能:インラインパート(再利用可能なテンプレート)およびデコレータ(レンダリング状態を変更)。
    インライン部分:テンプレート内で定義され、JavaScript登録の必要性を排除します。 それらは、現在およびネストされたスコープへのブロックスコープの制限的な使用です。小さく、再利用可能なHTMLスニペットに最適です
  • デコレーター:ハンドルバープログラム機能を変更し、実行前にランタイムに影響を与えます。 コンテキストデータまたはヘルパーを変更するのに役立ちます
  • デコレーターは、通貨のフォーマットなどのタスクに特に有益である、コードのモジュール性、拡張性、およびテスト能力を向上させます。 両方の機能は、フロントエンド開発を合理化するため、よりクリーンで整理された、潜在的に効率的なコードをもたらします。
  • インライン部分
  • 一般的なテンプレートの概念である
  • 部分的なものは、再利用可能なテンプレートを個々のファイルに分離することにより、コードの再利用を促進します。 ただし、ハンドルバーの従来の部分には、グローバル範囲、JavaScriptの登録が必要なグローバル範囲(しばしば事前コンパイラーによって処理されますが)、および使用状況からの分離があります。 これは、多くの場合、それらの使用を最大の再利用可能なコードブロックのみに制限します。
  • インライン部分はこれらの問題に対処します。ハンドルバーの構文を使用してテンプレート内で定義されているため、JavaScript登録は必要ありません。それらのブロックスコープされた性質は、それらの使用を現在と子のスコープに限定します。 個別のファイルには小さすぎるか、単一のテンプレート内でのみ使用される小型で再利用可能なHTMLセグメントのインライン部分を選択します。 インライン部分を使用して

再利用可能なコードを

でラッピングすることにより、インライン部分を宣言します。 次に、テンプレート内で

で使用します

例:

{{firstName}} {{lastName}}

を繰り返す代わりに、インライン部分:{{#* inline "partialName"}} ... {{/inline}}を使用します {{> partialName}}

部分的な部分とインラインの部分的な部分を比較

<li>{{firstName}} {{lastName}}</li>の繰り返しのテンプレートを検討してください

  • 従来の部分: Handlebars.registerPartial('fullName', '{{firstName}} {{lastName}}');を登録するために別のJavaScriptファイルが必要で、次にテンプレートで使用されます{{> fullName}}が必要です。 これにより、部分的な定義が分離され、完全なテンプレートの理解がより挑戦的になります。

  • インライン部分:よりクリーンで自己完結型のアプローチ:

{{#* inline "fullName"}}
    {{firstName}} {{lastName}}
{{/inline}}

{{#each clients}}
    <li>{{> fullName}}</li>
{{/each}}
ログイン後にコピー

デコレーター

デコレーターは、ハンドルバープログラム機能を変更し、レンダリングプロセスに影響を与えます。 テンプレート機能を強化するメタデータを提供し、ヘルパー機能のより基本的なコンパニオンとして機能します。

ハンドルバーコンピレーションには次のものが含まれます。1。テンプレートの取得。 2。コンパイル。 3。出力のレンダリング。 デコレーターは、コンパイルステップ(

)に介入し、ブロックスコープ付きコンパイルされた関数に影響します。 レンダリング前に実行を制御し、コンテキストデータまたはヘルパーの変更を許可します。

Handlebars.compileデコレーターを使用して

デコレーターはを使用して登録されています。 関数は

を受信します Handlebars.registerDecorator() (program, props, container, context)

  • コンパイルされたハンドルバー機能。 引数、返品値、またはコンテキストを変更します program
  • ここに設定されたプロパティは、たとえ置き換えられたとしても、プログラム機能に影響します。 メタデータに役立ちます。
  • props
  • ハンドルバーランタイムコンテナ(部分、ヘルパー、コンテキスト)。変更可能。
  • container
  • デコレーターの引数とデータを含む親のコンテキスト
  • デコレーターは、機能(または偽の値)を返して、変更されたテンプレートをレンダリングする必要があります。 context例:通貨のフォーマットハンドルバー4.0の前に、通貨のフォーマットはしばしばヘルパーに依存していました。 デコレーターは、よりエレガントなソリューションを提供します。

デコレーターは、コンテキストに基づいて通貨のフォーマットヘルパーを動的に登録できます。

次に、テンプレートで:

このアプローチは、ヘルパーだけを使用するよりもモジュール式で拡張可能で、テスト可能です。

結論

インラインの部分的およびデコレーターは、ハンドルバーを大幅に強化し、コード組織、再利用性、およびテスト能力を向上させます。 それらは、より保守可能で効率的なフロントエンドアプリケーションを構築するための貴重なツールです。

以上がハンドルバー4.0を備えたインラインの部分的およびデコレータを使用しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? 独自のJavaScriptライブラリを作成および公開するにはどうすればよいですか? Mar 18, 2025 pm 03:12 PM

記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? ブラウザでのパフォーマンスのためにJavaScriptコードを最適化するにはどうすればよいですか? Mar 18, 2025 pm 03:14 PM

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? ブラウザ開発者ツールを使用してJavaScriptコードを効果的にデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:16 PM

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? ソースマップを使用して、マイナイドJavaScriptコードをデバッグするにはどうすればよいですか? Mar 18, 2025 pm 03:17 PM

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Console.log出力の違い結果:なぜ2つの呼び出しが異なるのですか? Apr 04, 2025 pm 05:12 PM

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...

See all articles