ネイティブ DOM を利用した軽量で最小限の HTML テンプレート ヘルパー
サーバーサイドレンダリング (SSR) モードはノードデータテンプレート経由で利用可能
自動パッチ更新を使用するには、HTML の下の行をドロップします。
< script src =" https://cdn.jsdelivr.net/npm/[email protected]/base.js " > </ script >
< script
src =" https://cdn.jsdelivr.net/npm/[email protected]/base.js "
crossorigin =" anonymous "
integrity =" sha384-i35RjawhK9lVyGUZOl8bMw50PRHWqwOuSPnMCq69WytKJ5Tqx9FhZ4SRIjQfp6yZ "
> </ script >
< script
src =" https://cdn.jsdelivr.net/npm/[email protected]/base.min.js "
crossorigin =" anonymous "
integrity =" sha384-HdiWx6gZdhakPcyhM4tZ1XImMYkFBV5QPz+F+e3J6gJub1djlJk8DbWTd8tub0Ib "
> </ script >
既存のファイルのない新しいプロジェクトの場合は、 data-template
cli を使用して、テンプレートから単純なプロジェクトをセットアップできます。
npx data-template my-app
cd my-app
# then see the guides in the console output and README.md file
data-*
) 属性に基づいてデータを dom に適用しますサポートされているdata-*
属性:
カテゴリ | 属性 |
---|---|
一般的な | テキスト、クラス、ID、タイトル |
リンク | href |
メディア | ソース、代替 |
画面 | 非表示、表示、場合 |
入力 | 値、チェック済み、選択済み、無効、読み取り専用 |
ダイアログ | 開ける |
形状 | アクション、送信時 |
イベント | クリック時 |
(正確なバージョンと整合性チェックサムを含むスクリプト タグについては、上のセクションを参照してください)
< script src =" https://cdn.jsdelivr.net/npm/[email protected]/base.js " > </ script >
< header id =" header " data-template =" header.html " > </ header >
< main id =" main " data-template =" article " data-bind =" articles " >
loading articles...
</ main >
< template data-name =" article " >
< article >
< h2 data-text =" title " > </ h2 >
< ul class =" tags " >
< li class =" tag " data-text =" tags " > </ li >
</ ul >
< p data-text =" intro " > </ p >
< a data-href =" detail " data-class =" highlight " > Details </ a >
</ article >
</ template >
< script >
renderTemplate ( header )
getJSON ( '/articles' ) . then ( articles => renderTemplate ( main , { articles } ) )
/* sample data:
[
{
title: '...',
tags: ['a', 'b'],
intro: '...',
detail: '/article.html?id=1',
highlight: false,
},
{
title: '...',
tags: [],
intro: '...',
detail: '/article.html?id=2',
highlight: true,
},
]
*/
</ script >
その他の例については、template/public を参照してください。
レンダリング関数:
// render data-* attributes
function renderData ( container , values ) ;
// render template on specific host element
function renderTemplate ( hostElement , binds ) ;
// recursive scan for templates and render them
function scanTemplates ( rootElement , binds ) ;
// populate the form using values from the object
function fillForm ( form , object ) ;
フォーマット関数:
// prepend '0' of the number is less than ten
function d2 ( number ) ;
// convert to 'YYYY-MM-DD' format for input[type=date]
function toInputDate ( date_or_time_or_string ) ;
// convert to 'HH:mm' format for input[type=time]
function toInputTime ( date_or_time_or_string ) ;
AJAX 関数:
// return promise of string, cached with localStorage
function getText ( url , options , callback ) ;
// return promise of json value, cached with localStorage
function getJSON ( url , options , callback ) ;
// submit form with ajax request in application/json
function submitJSON ( event_or_form ) : Promise < Response >
// submit form with ajax request in application/x-www-form-urlencoded or url search parameters
function submitForm(event_or_form): Promise < Response >
// submit form with ajax request in multipart/form-data
function uploadForm(event_or_form): Promise < Response >
// send ajax request in application/json
function postJSON(url, body): Promise < Response >
function patchJSON(url, body): Promise < Response >
function putJSON(url, body): Promise < Response >
// send ajax request with DELETE method
function del(url): Promise < Response >
getText()
関数とgetJSON()
関数の場合、 options
とcb
引数はオプションです。
options
オブジェクトは、 fetch
関数に渡される 2 番目の引数です。
callback
関数は、キャッシュされたデータやフェッチされたデータを使用して呼び出されます (詳細)。
ビューの陳腐化を回避したい場合は、 options
で{ cache: 'reload' }
を指定するか、コールバック関数を使用してデータを受信することをお勧めします。
返された Promise はエラー処理に使用できます。
取得したデータが URL によってすでにキャッシュされている場合、コールバックはすぐに呼び出されます。その後、キャッシュされているかどうかに関係なく、データがフェッチされます。新しくフェッチされたデータがキャッシュされたデータと異なる場合、コールバックが再度呼び出されます。
形式 | ファイルサイズ |
---|---|
ベース.js | 5.3KB |
Base.min.js | 2.9KB |
Base.min.js.gz | 1.4KB |
このプロジェクトは BSD-2-Clause でライセンスされています
これは無料、自由な、オープンソース ソフトウェアです。それは 4 つの本質的な自由に帰着します [参照]: