データバインディング
vueで新しいVue()を使用すると、ページ要素へのデータの双方向バインディングを実現できます。
- Vueのelパラメーターを使用してタグのIDをバインドし、関連付けを確立します。dataパラメーターはタグがバインドする必要のあるデータを定義し、methodsパラメーターは関数のコレクションを定義します。
- タグで{ {field}}を使用 して、データをタグにバインドします。
- タグでv-model = "field"を使用して、データモデルへのタグの双方向バインディングを実現します。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<script src="./[email protected]@vue/dist/vue.js"></script>
<body>
<div id="div1">
<h1>我是{
{name}},拥有{
{star}}个赞</h1>
<input type="text" v-model="star">
<button v-on:click="star++">点击加1</button><!--绑定点击事件,简单逻辑可以直接写-->
<button v-on:click="cancle">点击减1</button><!--绑定点击事件的函数-->
</div>
<script>
let vue = new Vue({
el: "#div1",//綁定到div元素
data: {//定义元素中使用的数据
name: "jhon",
star: 1
},
methods: {//定义元素中使用到的函数
cancle() {
if (this.star > 0) {
this.star--
} else {
alert("不能再减啦!")
}
}
}
})
</script>
</body>
</html>
イベントとイベント修飾子
- クリックイベントを実現するには、ラベルでv-on:click = "関数または単純なコードロジック"を使用します。
- イベントの停止、防止、およびその他の変更された属性を提供して、イベントのバブリングを整理し、デフォルトの動作がトリガーされないようにします。
たとえば、次のラージdivとスモールdivにはクリックイベントが設定されていますが、スモールdivクリックはラージdivにバブルし、2回トリガーします。stopを使用してバブルの発生を防ぐことができます。デフォルトのジャンプ動作は、<a>タグがクリックされたときに発生します。preventを使用して、ジャンプ動作を整理できます。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<script src="./[email protected]@vue/dist/vue.js"></script>
<body>
<div id="div1" style="border: 1px solid blue; padding: 20px;" v-on:click="alert"><!--大div点击触发alert函数-->
大div
<div style="border: 1px solid red; padding: 20px;" v-on:click.stop="alert"><!--小div点击触发alert函数,阻止事件冒泡到上一级div触发第二次alert函数-->
小div 点击后阻止冒泡到上一级div
<a href="http://www.baidu.com" v-on:click.prevent>点击后阻止跳转百度</a><!--阻止<a>标签默认的跳转行为-->
</div>
</div>
<script>
let vue = new Vue({
el: "#div1",//綁定到div元素
methods: {//定义元素中使用到alert函数
alert(){
alert("hello")
}
}
})
</script>
</body>
</html>