1.vue.js的三种绑定关系
1.属性绑定
- Mustache 语法不能在 HTML attribute 中使用,然而,可以使用 v-bind指令
- 格式: v-bind:属性名=”Vue中data的属性名”
v-bind:属性名 简称 :属性名
<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><script src="https://unpkg.com/vue@next"></script><style>button{padding: 10px;background-color: antiquewhite;width: 200px;font-size: 40px;font-weight: 900;}.dred{width: 100px;height: 100px;background-color: red;}.drgreen{width: 100px;height: 100px;background-color: green;}.dryellow{width: 100px;height: 100px;background-color: yellow;}</style></head><body><div id="dv01"><div :class="dvstyle"></div><button v-on:click="changeColor">改变颜色</button><button v-bind:disabled="isdj">买部手机13 pro max</button><button v-on:click="change">改变状态</button></div><script>var i=0;//定义数据对象const params={data(){//数据源return {isdj:true,dvstyle:"dryellow"}},methods:{//函数集change(){this.isdj=!this.isdj;},changeColor(){i++;var t=i%3;if(t==0){this.dvstyle="dred";}else if(t==1){this.dvstyle="drgreen";}else{this.dvstyle="dryellow";}}}}//实现绑定和渲染Vue.createApp(params).mount('#dv01');</script></body></html>
2.事件绑定
使用 v-on 指令 (通常缩写为 @ 符号) 来监听 DOM 事件,并在触发事件时执行一些JavaScript
- 常用事件: click dblclick change keyup
- 在监听键盘事件时,Vue 允许为 v-on 或者 @ 在监听键盘事件时添加按键修饰符
- 事件处理程序中可以有多个方法,这些方法由逗号运算符分隔
<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><script src="https://unpkg.com/vue@next"></script><style>.dv2{width: 30px;height: 30px;background-color: red;position: relative;left: 10px;top: 10px;}</style></head><body><div id="dv01"><h1 :style="style1" @click="crandom">你的幸运数字:{{num}}</h1><div><input v-model="name" @change="showName"></div><h1 @dblclick="sj">双击6666</h1><input @keyup.down="xy" @keyup.up="sy" @keyup.left="zy" @keyup.right="yy" class="dv2" :style="dvposition"></input><button @click="xy(),yy()">动起来</button></div><script>function randomHexColor() { //随机生成十六进制颜色var hex = Math.floor(Math.random() * 16777216).toString(16); //生成ffffff以内16进制数while (hex.length < 6) { //while循环判断hex位数,少于6位前面加0凑够6位hex = '0' + hex;}return '#' + hex; //返回‘#'开头16进制颜色}//定义数据函数对象--Modelconst params = {data() {return {num: 0,style1:"background-color:red",name:"",lnum:10,tnum:10,dvposition:"left: 10px;top:10px"}},methods:{crandom(){this.num=Math.floor(Math.random()*10);this.style1="background-color:"+randomHexColor();},showName(){alert(this.name);},sj(){this.name="双击成功:"+new Date().toLocaleTimeString()},sy(){this.tnum-=10;this.dvposition="left: "+this.lnum+"px;top:"+this.tnum+"px";},xy(){this.tnum+=10;this.dvposition="left: "+this.lnum+"px;top:"+this.tnum+"px";},zy(){this.lnum-=10;this.dvposition="left: "+this.lnum+"px;top:"+this.tnum+"px";},yy(){this.lnum+=10;this.dvposition="left: "+this.lnum+"px;top:"+this.tnum+"px";}}}//将数据函数和标签对应绑定Vue.createApp(params).mount('#dv01');</script></body></html>
3.双向绑定
用 v-model 指令在表单 、
