- v-model:-model通常用于表单组件的绑定,例如input,select等。它实现的是表单组件的双向绑定,如果用于表单控件以外标签是没有用的。如代码所示,v-model有三个修饰符: (1) v-model.lazy在改变这个input输入框里message的值的时候,原始的message值不会发生改变,只有当v-model.lazy这个输入框失去焦点的时候原始的message值才发生相应的改变。在做搜索功能的时候常用到v-model.lazy; (2) v-model.number,当数据是数字的时候不需要转换就可以直接拿来运算,不需要 onEnter: function () {this.a = this.a + parseInt(this.b); }这种操作; (3) v-model.trim去掉该条数据前后的空格,也就是说在这个输入框里面的值的前后空格是不生效的。<body><h1>v-model </h1><div id="app"><p>原始文本:{{message}}</p><h3>文本框{{a}}</h3><p>v-model:<input type="text" v-model="message"></p><p>v-model.lazy:<input type="text" v-model.lazy="message"></p><p>v-model.number<input type="text" @keyup.enter="onEnter" v-model.number="b"></p><p>v-model.trim<input type="text" v-model.trim="message"></p><hr><h3>文本域</h3><textarea v-model="message" cols="30" rows="10"></textarea><hr><h3>单选框</h3><p>{{xz}}<input type="checkbox" v-model="xz"></p><hr><h3>多个单选框绑定一个数组</h3><p><input type="checkbox" id="xz1" value="xz1" v-model="xzArray"><label for="xz1">xz1</label><br><input type="checkbox" id="xz2" value="xz2" v-model="xzArray"><label for="xz2">xz2</label><br><input type="checkbox" id="xz3" value="xz3" v-model="xzArray"><label for="xz3">xz3</label><p>{{xzArray}}</p></p><hr><h3>单选按钮</h3><input type="radio" id="one" value="true" v-model="danxuan"><label for="one">true</label><br><input type="radio" id="two" value="false" v-model="danxuan"><label for="two">false</label><p>{{danxuan}}</p><hr><h3>选择列表</h3><p><select v-model="set"><option>A</option><option>B</option><option>C</option></select><p>{{set}}</p><select v-model="rerge" multiple><option>A</option><option>B</option><option>C</option></select><p>{{rerge}}</p></p></div><script>var app = new Vue({el: "#app",data: {a: 10,b: 0,message: "Hello Vue!",xz: true,xzArray: [],danxuan: "",set: "",rerge: []},methods: {onEnter: function () {this.a = this.a + this.b;}}})function sortByKey(array, key) {return array.sort(function (a, b) {var x = a[key];var y = b[key];return ((x < y) ? -1 : ((x > y) ? 1 : 0));});}</script></body>
- v-bind:(1) 绑定class: v-bind:class="{classA:false}"中classA是style里面的class类名,true/false控制那个类名是否起作用;在绑定class时使用数组的话,在使用v-bind:class="[classA,classB]"的同时,data里面要设置classA,classB的值:classA: "classA",classB: "classB"; 绑定class时使用数组的话,在使用v-bind:class="[classA,classB]"的同时,data里面要设置classA,classB的值:classA: "classA",classB: "classB"; (2) 绑定style时,style对象里面键的键值对中,键名是css的属性名,遇到横线链接的如font-size要去掉横线用小驼峰命名,键的值必须是data里面设置的值;style绑定json语句的时候,所用的这个json对象必须是data里面的一个设置css样式的json对象,这个对象里面遇到有横线链接的属性名也要用小驼峰命名; (3) v-bind:可以缩写为一个冒号;<body><h1>v-bind </h1><div id="app"><img v-bind:src="imgSrc" width="200" height="200"><hr><h3>一.绑定class</h3><div v-bind:class="{classA:true}">1.绑定class中的判断</div><div v-bind:class="[classA,classB]">2.绑定class中使用数组</div><div v-bind:class="[color?classA:classB]">3.绑定class中使用三元表达式判断</div><div v-bind:class="[{classA:color},classB]">4.绑定class中使用判断组合</div><hr><h3>二.绑定style</h3><div v-bind:style="{color:blue,fontSize:font}">style绑定</div><div v-bind:style="fontArry">style绑定json语句</div></div><style>.classA {color: red;}.classB {font-size: 58px;}</style><script>var app = new Vue({el: "#app",data: {message: "Hello Vue!",imgSrc: "../images/01.jpg",classA: "classA",classB: "classB",blue: "blue",font: "18px",color: true,fontArry: {color: "green",fontSize: "26px",fontWeight: "550"}},computed: {}})</script></body>
vue学习—常用指令(二)
最新推荐文章于 2025-03-21 10:40:45 发布