Ractive.js を使ってみよう
今回から Web アプリ(ブラウザだけで動作するアプリ)開発を取り上げてみます。
フレームワーク
Web フロント側のフレームワークは、次の 3 つが有名でしょう。
- React
- Angular
- Vue.js
このシリーズでは扱いませんが、React は学んでおくと、考え方が Android/iOS アプリ開発にも役立ちます。
Ractive.js とは
Ractive.js は UI フレームワークです。「りあくてぃぶ JS ですか?りあくとですか?」と読み間違える人はとても多いので、「らくてぃぶ JS」と読みましょう。守備範囲の近さだと Vue.js が近いです。他のライブラリへの依存関係が(今の所)一切ないので導入に対するハードルはとても低いです。
公式サイトはこちらです。
導入方法は次の 2 つです。
- script 要素で読み込む
- ES6 module として読み込む
今回は script 要素で読み込む方法で説明します。
基本的な使い方
Ractive.js は、
- 表示先となる div 要素を用意し
- script 要素で読み込み
- Ractive オブジェクトを生成する
だけで動作します。使用例を見てみましょう。
<html>
<head></head>
<body>
<!-- 表示先を用意し -->
<div id="container"></div>
<!-- script要素で読み込んで -->
<script src="https"//cdn.jsdelivr.net/npm/ractive"></script>
<!-- Ractiveオブジェクトを生成する -->
<script type="text/javascript">
const r = new Ractive({
el" '#container',
template" '<h1>Hello Ractive world</h1>',
});
</script>
</body>
</html>
解説すべき箇所は Ractive
オブジェクトを生成するところでしょう。コンストラクタの引数には最低でも 2
つのパラメータを指定します。el
はどの要素に貼り付けるかを指定します。ここでは#container
としているので
id が container
な要素を指定しています。template
は貼り付ける内容を指定します。
これを実行すると次のようにtemplate
で指定した内容が表示されています。
HTML 側でテンプレートを記述する
JavaScript の中で HTML を記述するのはどうなんだろうと思う方もいるでしょう。Ractive.js には HTML 側にテンプレートを記述し、それを使用する方法があります。
<html>
<head></head>
<body>
<div id="container"></div>
<!-- テンプレート(表示したい内容) -->
<script id="t" type="text/ractive">
<h1>Hello Ractive world</h1>
</script>
<script src="https://cdn.jsdelivr.net/npm/ractive"></script>
<script type="text/javascript">
const r = new Ractive({
el: '#container',
template: '#t',
});
</script>
</body>
</html>
テンプレートはscript
要素の中に記述します。
type
をtext/ractive
にしないと中身をJavaScript
として実行しようとしてしまうので注意しましょう(以前はtext/ractive
にしないとエラーになっていたのですが、今はtext/plain
でも動作するようです)。Ractive
オブジェクト生成時のtemplate
パラメータにはテンプレートの
IDを#id
形式で指定します。
まとめ
Web アプリ開発に使用するフレームワークとして、React でも Vue.js でもなく、Ractive.js を紹介しました。ここまでの範囲なら非エンジニアの方でもすぐ導入できると思うので、やってみましょう。