vue03-vue绑定事件及双向绑定

vue绑定事件及双向绑定

vue绑定事件

绑定事件 其实Vue里面的绑定事件就和js里面原理一样,只是Vue使用形式不同 js里面要绑定触发事件,我们直接在标签里面写上触发事件和执行的js方法即可

v-on 监听事件
事件有vue的事件和前端页面本身的一些事情,我们这边click是vue的事件可以绑定到vue中的methods中的方法事件,
实 例 \color{#FF0000}{实例}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!-- view层 模版 -->
<div id="app">
    <button v-on:click="say">惦记我</button>
</div>
<!-- 1.导入vue.js -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.min.js"></script>
<script>
    var vm = new Vue({
        // 数据
        el:"#app",
        data:{
            message: "敏姐儿"
        },
        methods: { //方法必须定义在Vue的Methods
            say: function() {
                alert(this.message)
            }
        }
    });
</script>
</body>
</html>

运行结果:
在这里插入图片描述

vue双向绑定

vue.js 是一个MVVM框架,即数据双向绑定,当数据发生变化的时候,视图也会发生变化,相应的当视图发生变化的时候数据也会跟着同步变化

我们思考一个问题:我们为什么要使用数据双向绑定?带着这个问题我们来探究以下的内容:
  我们先设计一个业务场景:我们在银行签字,需要在pdf版合同上显示对应文字
代 码 示 例 \color{#FF0000}{代码示例}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!-- view层 模版 -->
<div id="app">
    <-- 通过v-model来进行数据的双向的绑定 -->
    <textarea name="" id="" cols="" rows="10" v-model="message"></textarea>
    {{message}}
</div>
<!-- 1.导入vue.js -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.min.js"></script>
<script>
    var vm = new Vue({
        // 数据
        el:"#app",
        data:{
            message: "签名:"
        }
    });
</script>
</body>
</html>

运行效果:
在这里插入图片描述
在这个业务场景中实现了视图变化,数据同步变换的情况,那么我们在控制台做相应的操作来实现数据变化,视图跟着变化的情况:
在这里插入图片描述
根据上述动图来看,当手动修改数据发生变化的时候,视图也相应的发生了变化。
那么到现在我们来回顾在讲解双向绑定的那一个问题其中回答是否可以总结为以下的观点:
  在vue.js中,如果使用vuex实际上数据还是单向的,之所以说是数据双向绑定,这是用的UI控件来说的,对于我们处理器表单,vue.js的数据双向绑定就用起来特别舒服,两者并不互斥,在全局性数据流使用单向,方便跟踪,局部性数据流使用双向,简单容易操作。

双向绑定练习

业务场景:在微信绑卡业务中,选中某张账户卡片之后需要出现相应卡片账号。
代 码 实 例 \color{#FF0000}{代码实例}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!-- view层 模版 -->
<div id="app">
    卡号:
    <input type="radio" name="cardName" value="6666********2222" v-model="card">工商
    <input type="radio" name="cardName" value="6321********1111" v-model="card">招商
    <p>
        选择卡片为:{{card}}
    </p>
</div>
<!-- 1.导入vue.js -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.min.js"></script>
<script>
    var vm = new Vue({
        // 数据
        el:"#app",
        data:{
            card: ""
        }
    });
</script>
</body>
</html>

在这里插入图片描述

业务场景:选择答案
代 码 实 例 \color{#FF0000}{代码实例}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!-- view层 模版 -->
<div id="app">

    下拉框:
    <select v-model="selected">
        <option>A</option>
        <option>B</option>
        <option>C</option>
    </select>
    <span>{{selected}}</span>
</div>
<!-- 1.导入vue.js -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.min.js"></script>
<script>
    var vm = new Vue({
        // 数据
        el:"#app",
        // 默认选项
        data:{
            selected: "A"
        }
    });
</script>
</body>
</html>

运行结果:
在这里插入图片描述
这些实例远远不能代表对双向绑定的理解,这个需要更多实际练习去掌握,加油小船夫们!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敏姐儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值