VUE中的v-model

    xiaoxiao2022-07-02  93

    v-model

    v-model指令用来在input、select、text、checkbox、radio等表单控件元素上创建双向数据绑定的。根据控件类型v-model自动选取正确的方法更新元素 。它负责监听用户的输入事件以更新数据。 <div id="app"> 账号:<input type="text" name="userid1" id="userid1" :value="userid1"> 账号:<input type="text" name="userid2" id="userid2" v-model="userid2"> <!-- 验证单向数据绑定 --> <button @click='fn' type="button">test</button> <!-- 验证双向数据绑定 --> <button @click='change' type="button">change</button> </div> <script type="text/javascript"> new Vue({ el:"#app", data:{ userid:"我是userid1", userid2:"我是userid2", }, methods:{ fn(){ console.log(this.userid1,this.userid2) }, change(){ this.userid="我是改过的userid" } } }) </script> 在该例子中,可以看出没有加v-model的input标签,当用户在前端改变userid时,前端界面的userid改变了,但是JS里的数据不会改变。加有v-model的的input标签,当我们改变界面的userid时,JS里的数据也会随之改变,实现双向绑定。若不加v-model,却想改变JS里的数据,可以在JS里实现改变,但是不灵活。
    利用v-model模仿百度搜索瀑布流的demo
    <div id="app"> <input type="search" name='search1' id="search1" v-model="search" @input='searchone'> <div v-for="obj in arr">{{obj}}</div> </div> <script> var vm = new Vue({ el: "#app", data: { search:'', arr: [] }, methods: { searchone(){ var url = `http://suggestion.baidu.com/su?wd=${this.search}&cb=?` $.getJSON(url,(data)=>{ this.arr = data.s; }) } } }) </script> vue的methods中的this与vm指向完全一致。若判定console.log(vm===this),打印结果为true。

    v-model表单补充

    select下拉表单
    单选时:绑定到一个字符串。①注意:这里v-model是绑定在select标签上。②当option没有设置value属性时,JS数据中的selected的值为option标签的值。③当option里面设置value值时,JS数据中的selected的值为option标签中value属性的值。例子如下: <div id="app"> <select v-model="selected"> <option disabled value="">请选择</option> <option value="AA">A</option> <option>B</option> <option>C</option> </select> <span>Selected: {{ selected }}</span> </div> <script> new Vue({ el: '#app', data: { selected: '' } }) </script>
    最新回复(0)