見出し画像

Vue.js を使ってみよう! 2

・条件分枝とループ

HTMLは、

<div id="app-3">
 <span v-if="seen">Now you see me</span>
</div>

です。そして、scriptは

var app3 = new Vue({
 el: '#app-3',
 data: {
   seen: true
 }
})

です。v-if = "seen"となっていますね。真偽(true or false)を表現できます。表示は、

Now you see me

と、最初はと表示されていますが、

コンソールで"app3.seen = false"とすれば


と、表示が消えます。

・ユーザー入力の制御

次にv-forを使ってみましょう!これはリスト操作できる命令となります。for in ループですね。配列の中のデータをリストに配置していきます。HTMLは

<div id="app-4">
 <ol>
   <li v-for="todo in todos">
     {{ todo.text }}
   </li>
 </ol>
</div>

でscriptは配列 todosが定義されています。

var app4 = new Vue({
 el: '#app-4',
 data: {
   todos: [
     { text: 'Learn JavaScript' },
     { text: 'Learn Vue' },
     { text: 'Build something awesome' }
   ]
 }
})

とすると、

1 Learn JavaScript
2 Learn Vue
3 Build something awesome

と表示されます。

コンソールに

app4.todos.push({text:"new"})

と打ち込むと

4. new

が追加されます。

次はボタンの設置です。"v-on"を使います。HTMLは

<div id="app-5">
 <p>{{ message }}</p>
 <button v-on:click="reverseMessage">Reverse Message</button>
</div>

で、scriptは、

var app5 = new Vue({
 el: '#app-5',
 data: {
   message: 'Hello Vue.js!'
 },
 methods: {
   reverseMessage: function () {
     this.message = this.message.split('').reverse().join('')
   }
 }
})

こんな感じになります。ボタンを押すと文字が反転します。

そして次に"双方向バインディング"です。HTMLは

<div id="app-6">
 <p>{{ message }}</p>
 <input v-model="message">
</div>

で、scriptは

var app6 = new Vue({
 el: '#app-6',
 data: {
   message: 'Hello Vue!'
 }
})

ですね。v-model="message"と指定してやると、

と表示されます。これで、<input v-model="message">で表示されている文字が上に表示されます。少し消してみると上の文字も消えていきます。

インタラクティブに文字が表示されます。

この記事が気に入ったらサポートをしてみませんか?