Vue.js ディレクティブ
ディレクティブはHTMLタグの中にある v-text のようなVue用の特別な属性です。
<div v-text="msg"></div>
サンプル
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<h1 v-if="bool1">v-if</h1>
<h1 v-else-if="bool2">v-else-if</h1>
<h1 v-else>v-else</h1>
<h1 v-show="bool3">v-show</h1>
<button v-on:click="exec">btn</button>
<a v-bind:href="www">aaa</a>
<input type="checkbox" v-model="bool3">
<div v-text="msg"></div>
<div v-html="msg"></div>
<div v-for="item in items" v-bind:key="item.id">
{{ item.id + "-" + item.message }}
</div>
<div v-for="n in 5">
{{ n }}
</div>
</div>
<script>
var app = new Vue({
el: '#app',
data: {
www: 'https://www.google.co.jp/',
bool1: true,
bool2: true,
bool3: true,
msg: "<b>bold</b>",
items: [{
id: 1,
message: 'One'
},
{
id: 2,
message: 'two'
}
]
},
methods: {
exec: function () {
this.bool1 = false;
}
}
})
</script>
</body>
</html>
条件分岐
<h1 v-if="bool1">v-if</h1>
<h1 v-else-if="bool2">v-else-if</h1>
<h1 v-else>v-else</h1>
条件分岐には、v-if、v-else-if、v-elseを使います。v-if単体でも使えますし、v-if、v-elseだけでも使えます。
条件表示
<h1 v-show="bool3">v-show</h1>
条件により表示/非表示を制御するなら、v-showを使います。
イベント
<button v-on:click="exec">btn</button>
<button @:click="exec">btn</button>
var app = new Vue({
el: '#app',
methods: {
exec: function () {
this.bool1 = false;
}
}
})
v-onでイベントをキャッチし、JavaScirptの処理を呼び出せます。省略して@でも同じ動きをします。
画面表示とJavaScript処理の連携
<input type="checkbox" v-model="bool3">
var app = new Vue({
el: '#app',
data: {
bool3: true
}
})
v-modelで画面入力値とJavaScript処理の変数を同期することができます。
HTML属性とJavaScript処理の連携
<a v-bind:href="www">aaa</a>
<a :href="www">aaa</a>
var app = new Vue({
el: '#app',
data: {
www: 'https://www.google.co.jp/'
}
})
v-bindで属性値とJavaScript処理の変数を同期することができます。v-bindは省略できます。
ループ
<div v-for="item in items" v-bind:key="item.id">
{{ item.id + "-" + item.message }}
</div>
<div v-for="n in 5">
{{ n }}
</div>
var app = new Vue({
el: '#app',
data: {
items: [{
id: 1,
message: 'One'
},
{
id: 2,
message: 'two'
}
]
}
})
ループはv-forを使います。
画面表示
<div v-text="msg"></div>
<div v-html="msg"></div>
var app = new Vue({
el: '#app',
data: {
msg: "<b>bold</b>"
}
})
画面表示はv-text、v-htmlを使用します。
テキストとして表示する場合は、v-text(<b>bold</b>)を使用し、HTMLとして表示する場合はv-html(bold)を使用します。
ページのトップへ戻る