vue学习:单向绑定(v-bind)和双向绑定(v-model)

本文介绍了Vue.js中的单向绑定和双向绑定概念。v-bind用于单向绑定,例如对HTML标签属性的绑定,如:href。v-model则实现了数据与页面元素的双向绑定,当数据或页面元素发生变化时,双方会同步更新。通过示例展示了v-bind和v-model在实际应用中的效果。
摘要由CSDN通过智能技术生成

单向绑定和双向绑定*

  • 单向绑定
    v-html、v-text、插值表达式{{}}、v-bind都是单向绑定,即数据改变,页面元素也会跟着改变;而页面元素改变时,数据并不会跟着变。
    v-bind是对html标签的属性进行绑定,其缩写为冒号(:),例如:(v-bind:href)可以写为(:href)。
    以v-bind为例来说明单向绑定:
<!-- 给html标签的属性绑定 -->
<div id="app">
    <a v-bind:href="link">ogogo</a>
    <span :class="{active:isActive,'text-danger':hasErr}">你好</span>
    <span :style="{color:color1,fontSize:size}">哈哈</span>
</div>

<script src="../node_modules/vue/dist/vue.js"></script>
<script>
    let vm = new Vue({
        el: '#app',
        data:{
            link:"http://www.baidu.com",
            isActive:true,
            hasErr:true,
            color1:'red',
            size:'60px'
        }
    });
</script>

以上代码中link为"http://www.baidu.com",当点击超链接ogogo时将会跳转到百度页面,另外,按F12可以看到在vue实例中显示的是"http://www.baidu.com":
在这里插入图片描述
在控制台将link修改为"http://www.qq.com",此时点击ogogo时将会跳转到QQ页面,另外vue实例中显示的也变成 了"http://www.qq.com":
在这里插入图片描述
哈哈两字本身为红色:
在这里插入图片描述
当修改页面元素将红色变为蓝色时,vue实例中并不会跟着变为蓝色:
在这里插入图片描述
在这里插入图片描述

  • 双向绑定
    v-model可以实现页面和数据的双向绑定,数据变化时页面会跟着变,同理页面变化时数据也会同步变。
    v-model示例如下:
<div id="app">
    精通的语言:
    <input type="checkbox" v-model="language" value="java">java<br/>
    <input type="checkbox" v-model="language" value="python">python<br/>
    <input type="checkbox" v-model="language" value="css">css<br/>
    被选中的是:{{language.join(",")}}

</div>
<script src="../node_modules/vue/dist/vue.js"></script>
<script>
    let vm = new Vue({
        el: '#app',
        data:{
            language:[]
        }
    });
</script>

当在控制台将languge修改为’‘java’‘和’‘css’‘时,页面也会跟着就,选中了这两个选项:
在这里插入图片描述
当页面选中’‘java’‘和’‘python"时,数据也会跟着变为’‘java’‘和’'python":
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值