[Javascript]Ractive.jsでシンプルにDOM操作をする
Ractive.js
Ractive.jsは、インタラクティブなDOM操作を行うためのライブラリです。 データバインディングやDOM更新を簡単に行うことができます。 最近のJavascriptフレームワークを使えば、そういったことはだいたいできますが、 Ractive.jsはとても軽量かつ覚えることも少ないので、すぐに使い始めることができます。 今回はここでやっているように、Ractive.jsを動かしてみましょう。
環境構築方法
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.7.5
セットアップ&動作確認
セットアップはとても簡単です。 ここからRactive.jsをダウンロードします。 そしてサンプル用index.htmlを作成し、次のように記述しましょう。
<!doctype html> <html lang='ja'> <head> <meta charset='utf-8'> <title>ractive sample</title> </head> <body> <div id='container'> </div> <script id='myTemplate' type='text/ractive'> <label>your name: <input value='{{name}}'></label> <p>Hello, {{name}}!</p> </script> <script src='Ractive.js'></script> <script> var ractive = new Ractive({ el: '#container', template: '#myTemplate' }); </script> </body> </html>
上記サンプルでは、テキストフィールドに入力された文字列を、そのままテキスト表示しています。 Ractiveオブジェクト作成時に渡しているelには、出力先ブロックを、templateには出力内容を表すテンプレートを渡しています。 これだけの記述で、フィールドとテキストをバインディングすることができます。
もう一つサンプルを見てみます。下記例では、ボタンを押すとテンプレート内容のrecipientプロパティが更新されます。
<!doctype html> <html lang='ja'> <head> <meta charset='utf-8'> <title>ractive sample</title> </head> <body> <div id='container'> </div> <script id='myTemplate' type='text/ractive'> <p>{{greeting}}, {{recipient}}!</p> <input id='btn' type='button' value="click" /> </br> </script> <script src='Ractive.js'></script> <script> var ractive = new Ractive({ el: '#container', template: '#myTemplate', data: { greeting: 'Hello', recipient: 'world'} }); document.getElementById( 'btn' ).addEventListener( 'click', function () { ractive.set( 'recipient', 'taro' ); }); </script> </body> </html>
ここでは、ボタンクリックのタイミングでractive.set関数を使って、recipientプロパティを更新しています。
まとめ
今回はとりあえずRactive.jsを動かしてみました。データバインディングとDOM操作が簡単にできましたね。 ここのチュートリアルを順番に見ていけば、Ractive.jsの機能をひと通り確認することができます。 いくつか機能がありますが、それぞれはシンプルなのですぐに理解できると思います。