小さく、シンプルで、高速な DOM 作成ユーティリティ
HTMLを書くのは愚かです。これは遅くて面倒なので、JavaScript で実行すべきではありません。
DOM 要素を作成する最良の方法はdocument.createElement
を使用することですが、それを使用して多数の要素を作成するのは面倒です。
Crel を使用すると、このプロセスが簡単になります。
インスピレーションは laconic から得られましたが、Crel は悪い DOM 内イベント リスナーを台無しにすることはなく、より小さく、より高速です。
変更ログを表示する
ブラウザ化の場合:
npm i crel
let crel = require ( 'crel' ) ;
AMDの場合:
require . config ( { paths : { crel : 'https://cdnjs.cloudflare.com/ajax/libs/crel/4.0.1/crel.min' } } ) ;
require ( [ 'crel' ] , ( crel ) => {
// Your code
} ) ;
ES6+ を使用する場合:
import crel from 'crel' ;
標準のスクリプトタグスタイルの場合:
< script src =" crel.min.js " > </ script >
構文:
// Returns a DOM element
crel ( tagName / domElement , attributes , child1 , child2 , childN ) ;
ここで、 childN
次のようになります。
textNode
として挿入される文字列、null
、無視されます、またはArray
let element = crel ( 'div' ,
crel ( 'h1' , 'Crello World!' ) ,
crel ( 'p' , 'This is crel' ) ,
crel ( 'input' , { type : 'number' } )
) ;
// Do something with 'element'
オブジェクトのキーに文字列を使用することで、名前にダッシュまたは予約済みのキーワードが含まれる属性を追加できます。
crel ( 'div' , { 'class' : 'thing' , 'data-attribute' : 'majigger' } ) ;
属性オブジェクトに含まれる特定のキーに対してカスタム機能を定義できます。
crel . attrMap [ 'on' ] = ( element , value ) => {
for ( let eventName in value ) {
element . addEventListener ( eventName , value [ eventName ] ) ;
}
} ;
// Attaches an onClick event to the img element
crel ( 'img' , { on : {
click : ( ) => {
console . log ( 'Clicked' ) ;
}
} } ) ;
すでに使用可能な要素を Crel に渡して、属性を変更したり、子要素を追加したりできます。
crel ( document . body , crel ( 'h1' , 'Page title' ) ) ;
作成中に子要素を変数に割り当てることができます。
let button ;
let wrapper = crel ( 'div' ,
button = crel ( 'button' )
) ;
おそらく Crel を使用して既存の DOM 要素を再配置することができます。
crel ( someDiv , crel ( someOtherDiv , anotherOne ) ) ;
でもやめてください。
プロキシをサポートする環境で Crel を使用している場合は、新しい API も使用できます。
let crel = require ( 'crel' ) . proxy ;
let element = crel . div (
crel . h1 ( 'Crello World!' ) ,
crel . p ( 'This is crel' ) ,
crel . input ( { type : 'number' } )
) ;
Crel は ES6 機能を使用しているため、すべてのエバーグリーン ブラウザーで動作します。
1K 未満の縮小、gzip 圧縮された約 500 バイト === Smal
クレルは速い。使用するブラウザーに応じて、直接document.createElement
呼び出しを行うことができます: http://jsperf.com/dom-creation-libs/10
マサチューセッツ工科大学