LoginSignup
59
58

More than 5 years have passed since last update.

軽量・シンプルな思想でデータバインディングができるVue.jsの基礎まとめ

Last updated at Posted at 2014-07-10

はじめに

話題のVue.jsについて研究してます。
日本語のドキュメントが少なく苦戦しているため、思考錯誤しながら記事をアップデートしていく予定です。

追記(2016年12月1日)

この記事は公式日本語ドキュメントが無い時代に書いた記事です。
公式の日本語ドキュメントができたので、今後はこちらをご覧ください。

よく使う機能

{{hoge}} : バインディングさせたい変数
v-for : ループ
v-model : 入力フォームと連動したい場合
v-on : Click時などのイベントにひもづける

Sample-1

変数をテンプレート内に表示させるだけのサンプル

HTML

<div id="item">
    <h1>{{title}}</h1>
</div>

JavaScript

var vue = new Vue({
    el: '#item',
    data: {
        title: 'タイトル'
    }
});

補足

{{ aaa + bbb }}というように四則演算も可能

出力結果

タイトルという文字が表示されます

Sample-2

オブジェクトをループさせて表示させるサンプル

オブジェクト

var obj = {
    aaa: 111,
    bbb: 222,
    ccc: 333
};

HTML

<div id="item">
    <ul v-for="val in vals">
        <li>{{ val }}</li>
    </ul>
</div>

Vue.js側

var vue = new Vue({
    el: '#item',
    data: {
        vals: obj
    }
});

Sample-3

v-onを使って、クリック時にアラートを表示。

HTML

<div id="item">
    <h1>{{title}}</h1>
    <a v-on:click="onFunc('hello!', $event)">Button</a>
</div>

v-on:click@clickと省略も可能。

JavaScript

var vue = new Vue({
    el: '#item',
    data: {
        title: 'test'
    },
    methods: {
        onFunc: function(msg, e) {
            console.log(e.target.tagName); //eはクリックした要素を取得できる
            alert(msg + 'クリックしました');
        }
    }
});

バインディング中は変数を非表示にするやり方

意外にハマった(分からなかった)ので書きます。
通常だと、変数{{hoge}}がチラッと見えてかっこ悪いので、以下のようにすると、バインドするまでは非表示になります。

HTML

紐付けているHTML要素にv-cloakをつける。

<div v-cloak>

CSS

非表示にさせるため、以下を追加。

<style>[v-cloak] { display:none }</style>
59
58
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
59
58