Vue表单绑定v-model 及其修饰符

1.v-model的基本使用
在默认情况下,v-model是在input事件中同步输入框的数据
界面改变 数据也改变 把界面上的value传过去

<div id="app">
    <input type="text" v-model="message">
</div>
</body>
<script>
const app = new  Vue({
     
    el:"#app",
    data:{
     
        message:'2345yu'
    }
})
</script>

2.v-model的原理
背后包含两个指令

div id="app">
    <input type="text" :value="message" @input="valueChange">
     <input type="text" :value="message" @input="messge = $ event.target.value">
</div>
</body>
<script>
const app = new  Vue({
     
    el:"#app",
    data:{
     
        message:'2345yu'
    },
    methods:{
     
    valueChange(){
     
        this.message = event.target.value;
     }
    }
})
</script>

2.v-model结合radio类型
单选圈圈

<div id="app">
  <label foe="male">
  //label :没有label 只能点框  有label 可以点后面的字
    <input type="radio" id="male"  name="sex" value="男" v-model="sex"></label >
  <label foe="female">
    <input type="radio" id="female"  name="sex" value="女" v-model="sex">//name一样的时候  radio为单选  若绑定同样的v-model  也互斥
   </label >
</div>
</body>
<script>
const app = new  Vue({
     
    el:"#app",
    data:{
     
        message:'2345yu',
        sex:''
    }
})
</script>

3.v-model结合checkbox类型
checkbox:复选框(单个勾选框和多个勾选框)

<div id="app">
  <!--------------------checkbox单选框----------------------------->
  <label for="male">
    <input type="checkbox" id="agree" v-model="isAgree">同意协议
  </label >
 <!--------------------checkbox多选框----------------------------->
  <label for="male">
    <input type="checkbox" id="agree" value="篮球" v-model="hobbies">篮球
    <input type="checkbox" id="agree" value="足球" v-model="hobbies">足球
    <input type="checkbox" id="agree" value="乒乓球" v-model="hobbies">乒乓球
    <input type="checkbox" id="agree" value="羽毛球" v-model="hobbies">羽毛球
  </label >
</div>
</body>

<script>
const app = new  Vue({
     
    el:"#app",
    data:{
     
        message:'2345yu',
        isAgree:false,  //默认false时,未选中
        hobbies:[]//选中哪个,value进来哪个  可以多个
    },
   
})
</script>

4.v-model 结合select类型使用

<div id="app">
    <!--选择一个-->
    <select  name="abc" id="1" v-model="fruit">
        <option value="苹果">苹果</option>
        <option value="香蕉">香蕉</option>
        <option value="西瓜">西瓜</option>
        <option value="太郎">太郎</option>
    </select>
   <!--选择多个   multiple  加上按住Ctrl可多选-->
    <select  name="abc" id="2" v-model="fruits" multiple>
        <option value="苹果">苹果</option>
        <option value="香蕉">香蕉</option>
        <option value="西瓜">西瓜</option>
        <option value="太郎">太郎</option>
    </select>
</div>
</body>

<script>
    const  app=new Vue({
     
        el:"#app",
        data:{
     
            fruit:"香蕉", //下拉框默认选择香蕉
            fruit:[]
        }
    })
</script>

5.v-model修饰符的使用

  • lazy修饰符
    可以让数据在失去焦点的时候或者敲击回车的时候才会更新数据
<input type="text" v-model.lazy="fruits">
  • number修饰符
    输入框输入值默认类型为字符串 .number强行转化为数字类型
<input type="text" v-model.number="fruits">
  • trim修饰符
    输入内容为收尾有空格,我们希望把他去除 trim可过滤两边空格
<input type="text" v-model.trim="fruits">

你可能感兴趣的:(vue,vue)