JavaScriptのテンプレートエンジンを作ってみる
■ このスレッドは過去ログ倉庫に格納されています
11
2019/03/05(火) 00:50:27.87ID:8a3k8XPA よ?
21
2019/03/06(水) 17:34:50.45ID:1pbO3u+T まずはライブラリの名前を決めた
31
2019/03/06(水) 23:20:38.72ID:1pbO3u+T サンプル(1)
<!doctype html>
<html lang="ja" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="../lib/biew.js"></script>
<script src="./test.js"></script>
</head>
<body biew:canvas="page" biew:id="body">
<section biew:id="section">
<h1 biew:id="heading1">この要素はHeading Element1です。</h1>
<h2>{{ heading2 }}</h2>
<h3 biew:id="heading3">薬草は<span>{{ heading3.gold }}</span>Gです。</h3>
</section>
</body>
<html>
<!doctype html>
<html lang="ja" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="../lib/biew.js"></script>
<script src="./test.js"></script>
</head>
<body biew:canvas="page" biew:id="body">
<section biew:id="section">
<h1 biew:id="heading1">この要素はHeading Element1です。</h1>
<h2>{{ heading2 }}</h2>
<h3 biew:id="heading3">薬草は<span>{{ heading3.gold }}</span>Gです。</h3>
</section>
</body>
<html>
41
2019/03/06(水) 23:22:11.81ID:1pbO3u+T サンプル(1)test.js
var page = new Biew.Canvas(); // <body biew:canvas="page">
page.draw = function(node){
page.body.setAttr("style", "background-color:#8888FF;"); // bg blue.
page.section.setAttr("style", "background-color:#CCCCCC; width:512px;"); // bg grey.
var h1 = page.heading1; // true === (h1 instanceof Biew.Element)
h1.setText("テンプレートエンジンのサンプル");
var h2 = page.heading2;
h2.setText("Hello World!");
h2.setAttr("style", "background-color:#FFFFFF;");
var h3 = page.heading3;
h3.setAttr("style", "color:white; background-color:black;"); // font white, bg black.
h3.gold.setText("8");
h3.gold.setAttr("style", "color:#66FF66;"); // font grean.
};
window.onload = function(){
Biew.init();
Biew.draw();
};
var page = new Biew.Canvas(); // <body biew:canvas="page">
page.draw = function(node){
page.body.setAttr("style", "background-color:#8888FF;"); // bg blue.
page.section.setAttr("style", "background-color:#CCCCCC; width:512px;"); // bg grey.
var h1 = page.heading1; // true === (h1 instanceof Biew.Element)
h1.setText("テンプレートエンジンのサンプル");
var h2 = page.heading2;
h2.setText("Hello World!");
h2.setAttr("style", "background-color:#FFFFFF;");
var h3 = page.heading3;
h3.setAttr("style", "color:white; background-color:black;"); // font white, bg black.
h3.gold.setText("8");
h3.gold.setAttr("style", "color:#66FF66;"); // font grean.
};
window.onload = function(){
Biew.init();
Biew.draw();
};
51
2019/03/06(水) 23:25:49.76ID:1pbO3u+T61
2019/03/08(金) 00:59:23.45ID:kMybevyH 上記のサンプルを解説
1.
属性(biew:canvas)が付加された要素内を一括に再描画する
要素のクローンがfunction draw(node)に引数として渡され、
DOM操作されたクローンがHTMLFragmentとして差し替えられる
2.
属性(biew:id)の値と同じ名前の変数に、対となるHTMLElementが代入される
<h2>の{{変数名}}はTextNodeの代入ではなく<h1>と同じように、
要素を変数に代入する糖衣構文である
<h3>では<h1>と<h2>の例を組み合わせて文字列と属性を変更した
1.
属性(biew:canvas)が付加された要素内を一括に再描画する
要素のクローンがfunction draw(node)に引数として渡され、
DOM操作されたクローンがHTMLFragmentとして差し替えられる
2.
属性(biew:id)の値と同じ名前の変数に、対となるHTMLElementが代入される
<h2>の{{変数名}}はTextNodeの代入ではなく<h1>と同じように、
要素を変数に代入する糖衣構文である
<h3>では<h1>と<h2>の例を組み合わせて文字列と属性を変更した
71
2019/03/16(土) 23:01:43.70ID:Jt4TMHpi Vue, Reactみたいな双方バインディングを作りたかったけど簡単には作れないや
2019/03/23(土) 08:25:09.46ID:xbtzdLRS
HTMLはやめてJSONなどJSで完結できるようにして
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「レーダー照射」なぜ中国は素直に謝罪しないのか 非を認めず反論、逆ギレ「ごめんなさい」と言えない国情★3 [七波羅探題★]
- 【サッカー】Jリーグ、43億円の赤字予算を承認 ★2 [鉄チーズ烏★]
- 松村沙友理、スタバは好きだけど「やっぱコーヒーに700円800円が…」「家でお湯わかしてやったらタダやん」 [muffin★]
- 40代教員、1億8600万円分の暗号資産だまし取られる 「警察手帳のような物」見せられ−滋賀県草津市 [蚤の市★]
- 上野動物園の双子パンダ、1月末に中国に返還へ 国内でパンダ不在に ★4 [蚤の市★]
- 【ラブホ】小川晶前市長、出直し立候補意向 周囲に伝達 群馬・前橋市長選 [ぐれ★]
- 【実況】博衣こよりのえちえちダンガンロンパ2🧪★8
- 配達員って底辺職なのに妙にプライド高い奴多いよな
- ブレイキングダウンの試合前挑発タイムでくも膜下出血 朝倉未来の責任は [279254606]
- 上野動物園の空いたパンダの檻に今後、展示すべきもの [153736977]
- ボカロとかボイロ増えすぎ
- 串カツ田中の代表取締役
