vue(12)v-model双向绑定

1.v-model一般用于表单中绑定一个变量,在js中变量的值变化时表单中的值也变化,页面上改变表单中的值时js中绑定的变量的值也变化。

<template>
    <div>
    <input type="text" v-model="msg">//双向绑定
    <br>
    <input type="text" :value="msg">//单向绑定,只有js中对象值变化时界面中input中的值变化,但是在页面上改变input中的值时msg的值不会变化
    <br>
    {{msg}}
    </div>
</template>

<script>
export default {
   name:"App",
   data:function(){
       return {
         msg:'this is test'
       };
   },
   computed:{
       
   },
   methods:{
      
   }
}
</script>

<style scoped>
</style>
 
2.v-mode也有修饰符
.layz:<input type="text" v-model.lazy="msg">//在页面的input中输入值后再按回车健才会导致msg变量的值变化
.number:input框中值变化时msg的类型转换为number类型,默认时string
.trim:赋值msg的时候会自动删除input框中输入的前后的空格
 
3.单选框中使用v-model双向绑定
<template>
    <div>
    <label for="one">
        <input id="one" type="radio" name="sex" value="男" v-model="sex">男
    </label>
    <label for="two">
        <input id="two" type="radio" name="sex" value="女" v-model="sex">女
    </label>
    <br>
    {{sex}}
    </div>
</template>

<script>
export default {
   name:"App",
   data:function(){
       return {
         sex:'男'
       };
   },
   computed:{
       
   },
   methods:{
      
   }
}
</script>

<style scoped>
</style>
 
4.单个checkbox中v-model获取是否选中
<template>
    <div>
    <input type="checkbox" v-model="isAgree">同意协议{{isAgree}}
    </div>
</template>

<script>
export default {
   name:"App",
   data:function(){
       return {
         isAgree:false
       };
   },
   computed:{
       
   },
   methods:{
      
   }
}
</script>

<style scoped>
</style>
 
5.多选框中v-model双向绑定,获取选中的选项为一个数组
<template>
    <div>
        <label for="a">
            <input id="a" type="checkbox" value="篮球" v-model="tags">篮球
        </label>
         <label for="b">
            <input id="b" type="checkbox" value="吉他" v-model="tags">吉他
        </label>
         <label for="c">
            <input id="c" type="checkbox" value="漫画" v-model="tags">漫画
        </label>
         <label for="d">
            <input id="d" type="checkbox" value="代码" v-model="tags">代码
        </label>
        <br>
        {{tags}}
    </div>
</template>

<script>
export default {
   name:"App",
   data:function(){
       return {
         tags:['篮球']//默认选项
       };
   },
   computed:{
       
   },
   methods:{
      
   }
}
</script>

<style scoped>
</style>
 
6.下拉列表中使用v-model。如果是下拉多选select中加入multiple属性,对应绑定的model对象设置为数组即可。
<template>
    <div>
       <select v-model="tag">
           <option value="篮球">篮球</option>
           <option value="漫画">漫画</option>
           <option value="吉他">吉他</option>
           <option value="代码">代码</option>
       </select>
        <br>
        {{tag}}
    </div>
</template>

<script>
export default {
   name:"App",
   data:function(){
       return {
         tag:'篮球'
       };
   },
   computed:{
       
   },
   methods:{
      
   }
}
</script>

<style scoped>
</style>
 
原文地址:https://www.cnblogs.com/maycpou/p/14706229.html