Vue 双向绑定

Posted rzkwz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vue 双向绑定相关的知识,希望对你有一定的参考价值。

使用textarea

<div id="app">
    <textarea name="text" id="" cols="30" rows="10" v-model="message"></textarea>
    {{message}}
</div>
<!--导入vue-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            //可以在message 设置默认值
            message: ‘‘
        }
    });
</script>

技术图片


使用radio

<div id="app">
    性别:
<input type="radio" name="sex" value="男" v-model="message">男
<input type="radio" name="sex" value="女" v-model="message">女

<p>
    选中了谁: {{message}}
</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            message: ‘‘
        }
    });
</script>

技术图片


使用select下拉框

<div id="app">
    <select v-model="message">
    <option value="" disabled>--请选择--</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
</select>
<span>value: {{message}}</span>
<!--导入vue-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            message: ‘‘
        }
    });
</script>

技术图片

总结

1.通过双向绑定,得出需要用到 [^ textarea] 进行绑定
[^ texterea]:在文本区域插值 () 并不会生效,应用 v-model 来代替。
2.v-model 会忽略所有表单元素的 value、checked、selected attribute 的初始值而总是将 Vue 实例的数据作为数据来源。你应该通过 javascript 在组件的 data 选项中声明初始值。
3. [^ select]如果 v-model 表达式的初始值未能匹配任何选项,[^ select]元素将被渲染为“未选中”状态。在 ios 中,这会使用户无法选择第一个选项。因为这样的情况下,iOS 不会触发 change 事件。因此,更推荐像上面这样提供一个值为空的禁用选项。




以上是关于Vue 双向绑定的主要内容,如果未能解决你的问题,请参考以下文章

如何初始化片段中的绑定属性以使双向数据绑定工作

vue数据双向绑定原理-observer

剖析Vue原理&实现双向绑定MVVM

剖析Vue原理&实现双向绑定MVVM

Vue.js快速上手|单向绑定与双向绑定

vue的双向绑定和依赖收集