ドーモ、onoGakkyです。
JavascriptのUIライブラリ[Riot.js]が
楽しげだったので、紹介します。
Riot.js
特徴
- 圧倒的に小さい
- v3.7.4で24KBくらい
- 記述が楽
- HTML+CSS+JavaScriptをコンポーネントでまとめられる
記述例
PugでRiotを書いてGulpでコンパイルする
- hello.tag (Riot.jsのタグ)
hello
p hello { value }
script.
this.value = "world"
"{ value }"に"world"が置き換えられる
- index.pug (Riotで作ったタグを使う)
doctype html
html
head
title HelloRiot
script(src="https://cdn.jsdelivr.net/npm/riot@3.7.4/riot.min.js")
body
hello
script(src="tags/hello.js")
script.
riot.mount('*');
TagとPugって語感似ててかわいいですね。
- インストール
$ npm i gulp gulp-pug gulp-riot --save-dev
- gulpfile.js (Riot.jsのタグをコンパイル)
/**
* pugファイルをdocsフォルダに変換して配置
* tagファイルを変換してdocs/tags/[tagname].jsに配置
*/
const gulp = require('gulp');
const riot = require('gulp-riot');
const pug = require('gulp-pug');
var srcDir = 'src';
var libDir = 'build';
gulp.task('build:pug', () => {
gulp.src('src/views/**/*.pug')
.pipe(pug())
.pipe(gulp.dest('docs/'));
});
gulp.task('build:riot', () => {
gulp.src('src/tags/**/*.tag') // タグファイルの場所
.pipe(riot({
type: 'es6', // ES6で記述できる
compact: true, // 生成後ファイルのなくても良い空白とかを排除
template: 'pug', // HTMLでなくPUGで記述できる
}))
.pipe(gulp.dest('docs/tags/')); // 生成後ファイルの場所
});
gulp.task('build', ['build:pug', 'build:riot'], () => {
gulp.watch(['src/views/**/*.pug'], ['build:pug'])
gulp.watch(['src/tags/**/*.tag'], ['build:riot'])
});
と、こんな感じでHelloWorldです。
静的気味なサイトや簡単なWebアプリならVue.js等を使うよりも
Riot.jsを使うほうが手っ取り早いかもしれませんね。
Electronアプリの場合にも使いやすそうです。
Riot.jsには他にもルータ機能やイベントハンドルの機能なんかもあるようです。
詳しくは公式ドキュメントをどうぞ。
私自身まだまだRiot.js勉強中なので、またなにかあれば記事を書きたいと思います。