LoginSignup
18
12

More than 5 years have passed since last update.

【Riot.js超入門】JSフレームワークにRiotする!!

Posted at

はじめに

最近、Riot.jsがアツい!
という記事を見かけ、どんなものなのだろうか?
と、フレームワークのフの字も知らないペーペーが使い始めて、既にドハマリしてしまったお話です。
後、Materializeもアツいらしいですが、それはまた別のお話ということで……

Riotの何が良いの?

私はAngularJSなどを使ったことがないので、そっちの良さは分かりません。
しかし、Node.jsを使ったりと、前準備が多そうに見えて、どうも敷居が高そうです…
ですが!
Riot.jsは通常のJavaScriptと同じように、<script>タグで読み出すだけ!
うっひょー!簡単そうじゃないか!!

はい、ちゃんとした方のご意見は
- フロント界隈で一番イケてるのは AngularJS でも React でもなく Riot.js だという話
などをご覧ください。

使う準備をする

とりあえず、ダウンロードから始めましょう。
もう済んでる方は、次の項目へ!


http://riotjs.com/ja/download/へアクセスします。
そして、riot+compiler.min.jsを保存してください。

スクリーンショット 2016-11-18 22.23.01.png

とりあえず、使ってみる

Riotはいろんなことができますが……
とりあえず使ってみましょうか。

まずは環境をこんな感じにしてみます。
スクリーンショット 2016-11-18 22.31.48.png

カスタムタグを使ってみる

カスタムタグでは、自分の好きなHTMLのタグを作ることができます。
まあ、やってみましょう!

<myTag></myTag>
というHTMLタグを作ってみます。

まずは、全体像。
全コピペで動きます。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <title>JSフレームワークにRiotする!</title>
    <meta charset="utf-8">
</head>

<script src="./riot+compiler.min.js"></script>

<body>
    <myTag></myTag>

    <script type="riot/tag">
    <myTag>

    <ul each='{items}'>
        <li>{info || "No data"}</li>
    </ul>

    this.items = [ {"info":"text1"}, {"info":"text2"}, {"info":"text3"}, {"info":"text4"}, {"info":"text5"} ];

    </myTag>
    </script>


    <script>
    // Riot.jsをマウント(利用開始!)
    riot.mount('*');
    </script>


</body>

</html>

スクリーンショット 2016-11-18 22.44.53.png

このように、JSONを一気にループし、タグ内に表示させることができます。
このコードのキモは以下の様な感じです。

スクリーンショット 2016-11-18 22.48.55.png

カスタムタグを外部ファイルに定義する

カスタムタグを1つのファイル内で連発すると、やはり汚くなってしまいます。
なので、外部ファイルに保存して使ってみましょう。


Riotのカスタムタグを定義するファイルの拡張子は、.tagになります。
では今回は、mytag.tagという名前でファイルを作ります。

スクリーンショット 2016-11-18 22.58.09.png


では、外部ファイルには先程定義したカスタムタグの処理を記述します。

mytag.tag
<myTag>

<ul each='{items}'>
    <li>{info || "No data"}</li>
</ul>

this.items = [ {"info":"text1"}, {"info":"text2"}, {"info":"text3"}, {"info":"text4"}, {"info":"text5"} ];

</myTag>

それに伴い、index.htmlも修正します。

index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <title>JSフレームワークにRiotする!</title>
    <meta charset="utf-8">
</head>

<!-- Riot.jsを読み込む -->
<script src="./riot+compiler.min.js"></script>

<!-- Riot Tag のロード -->
<script src="./mytag.tag" type="riot/tag"></script>

<body>
    <myTag></myTag>


    <script>
    // Riot.jsをマウント(利用開始!)
    riot.mount('*');
    </script>


</body>

</html>

<script src="./mytag.tag" type="riot/tag"></script>
これで、定義したカスタムタグをロードします。


結果は同じですね!
スクリーンショット 2016-11-18 22.44.53.png

便利便利!
とりあえず、今回はここまで!

18
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
12