第7讲:v-bind属性绑定,v-model双向绑定,v-on事件监听使用

news2024/11/30 2:37:40

目录

1.v-bind双向绑定
2.v-model双向绑定
3.v-on事件绑定

一.v-bind双向绑定

1.v-bind 指令可以在其名称后面带一个参数,中间放一个冒号隔开,这个参数通常是HTML元素的特性(attribute),Vue官方提供了一个简写方式 :bind,例如:
<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>
2.v-bind  主要用于属性绑定,比方你的class属性,style属性,value属性,href属性等等,只要是属性,就可以用v-bind指令进行绑定。

示例

<!-- 绑定一个属性 -->
<img v-bind:src="imageSrc">
<!-- 缩写 -->
<img :src="imageSrc">
<!-- class 绑定 -->
<div :class="{ red: isRed }"></div>
<div :class="[classA, classB]"></div>
<div :class="[classA, { classB: isB, classC: isC }]">
<!-- style 绑定 -->
<div :style="{ fontSize: size + 'px' }"></div>
<div :style="[styleObjectA, styleObjectB]"></div>

代码示例1

    <div id="demo">
        <a  href="#" v-bind:href="url">
            <img v-bind:class="c" src="logo.png" alt="">
        </a>
    </div>
    <script>
        var app=new Vue({
            el:'#demo',
            data:{
                url:'http://www.qq.com',
                c:'myred'
            }
        });
    </script>

代码示例2

        <div id="box"> 
			<img v-bind:src="url" :width='w'/>
			<img :src="url" :width='w'/>
		</div>
		<script type="text/javascript">
			new Vue({
				el: '#box',
				data: {
				   url:'logo.png',
				   w:'100px'
				}
			})
		</script>

3.绑定 HTML Class

我们可以传给 v-bind:class 一个对象,以动态地切换 class

对象语法

<div id="app" v-bind:class="{active: isActive}">
    你好
</div>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            isActive: true
        }
    });
</script>

数组语法

<div id="app" v-bind:class="[activeClass, dangerClass]">
    v-bind
</div>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            activeClass: 'active',
            dangerClass: 'text-danger'
        }
    });
</script>

绑定内联样式

 v-bind:style 的对象语法十分直观——看着非常像 CSS,但其实是一个 JavaScript 对象。CSS 属性名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case,记得用单引号括起来) 来命名: 

<div id="app" v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }">测试</div>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            activeColor: 'red',
            fontSize: 30
        }
    });
</script>

直接绑定到一个样式对象通常更好,这会让模板更清晰

<div id="app">
    <div v-bind:style="styleObject">测试效果</div>
</div>
<script>
    var vm = new Vue({
        el: '#app',
        data: {
            styleObject: {
                 color: 'red',
                 fontSize: '13px'
            }
        }
    });
</script>

二.v-model双向绑定

v-model一般用于数据的双向绑定(表单元素设置了之后会忽略掉value,checked,selected),常用在表单 <input> 及 <textarea> 让表单元素和数据实现双向绑定(映射关系),它会根据控件类型自动选取正确的方法来更新元素。
v-model属性的值是一个数据的变量,如果数据的值发生变化,会影响input的值,input的值的变化同时影响数据的变化

v-model 指令的基本使用

<div id="app">    
    <input type="text" v-model="msg">{{msg}}
</div>
<script>    
    var vm = new Vue({        
        el: '#app',        
        data: {            
            msg: 'hello world'        
        }    
    })
</script>

示例说明:

  1. 当修改数据msg里的内容, input输入框中的内容就会发生改变.

  2. 当修改输入框中的内容时,数据也会自动发生变化

关于checkbox

对于不能输入内容的表单,比如多选按钮,如果只有一个,或者有多个,v-model指令会有如何显示

checkbox上使用v-model

如果v-model,绑定的是一个字符串,咱们绑定的值,会转成布尔值,

选中就是true,不选择就是false

<template>
    <div id="app">    
        <input type="checkbox" v-model="val">{{val}}    <!--true  或者  false-->
    </div>
</template>
<script>    
    export default({
        name: 'ModelDemo',     
        data: {            
            val: '',        
        },    
    })
</script>

checkbox上使用v-model绑定数组

<div id="app">    
    <input type="checkbox" v-model="val" value='小明'>    
    <input type="checkbox" v-model="val" value='小红'>    
    <input type="checkbox" v-model="val" value='张三'>{{val}}
</div>
<script>    
    var vm = new Vue({           
        el: '#app',        
        data: {            
            val: [],        
        },    
    })
</script>

三.v-on事件绑定

v-on 指令用于给监听DOM事件,它的用语法和v-bind是类似的,例如监听<a>元素的点击事件:
  <a v-on:click=”clickHandle”>clickHandle test</a>
  clickHandle Vue 组件对象中的一个属性内的方法,该属性名为 methods methods 被命名为方法,是调用对象上下文中的函数,还可以操作对象中包含的数据

Vue.js为最常用的两个指令v-bind和v-on提供了缩写方式。v-bind指令可以缩写为一个冒号,v-on指令可以缩写为@符号。
  <span v-bind:title=”nowDate”> 鼠标悬停 </span>
 =>
<span :title=”nowDate”> 鼠标悬停 </span>
<a v-on:click=”clickHandle”>click test</a> 
=> 
<a @click=”clickHandle”>click test</a>
案例
<template>
    <div>
            <!--
                v-on 指令用于给监听DOM事件,它的用语法和v-bind是类似的,例如监听<a>元素的点击事件
                Vue.js为最常用的两个指令v-bind和v-on提供了缩写方式。
                v-bind指令可以缩写为一个冒号,
                v-on指令可以缩写为@符号。
            -->
            <h3 align="center">用v-on属性绑定事件</h3>
            <a href="#" v-on:click="test()">超级链接</a><br>
            <input type="button" value="点击我" v-on:click="test2()">
            <h3>v-on可以简写为@符号</h3>
            <a href="#" @click="test()">超级链接</a><br>
            <input type="button" value="点击我" @click="test2()">
            <h3 align="center">使用v-bind绑定属性</h3>
            <span :title="span标签的title属性">鼠标悬浮查看title属性</span>

            <h3 align="center">实现计算器功能</h3>
            <!-- <button @click="calc()">{{count}}</button><br> -->

            <input type="button" @click="calc" v-model="count">

            <h3 align="center">请使用vue的v-for和v-if指令完成以下数据的渲染(不渲染分数低于60的学生)</h3>
            <ul>
                <li v-for="s in studList" v-if="s.score>=60" :key="s.name">姓名:{{s.name}}||性别:{{s.gender}}||年龄:{{s.age}}||成绩:{{s.score}}</li>
            </ul>
    </div>
</template>
<script>
    export default({
        name:'VON',
        data(){
            return{
                count:0,
                studList:[
                    {name: '张三', gender: '男', age: 16, score: 88 },
                    { name: '李四', gender: '女', age: 18, score: 59 }
                ]

            }
        },
        methods:{
            test(){
                alert("您点击了超级链接");
            },
            test2(){
                alert("您点击了按钮");
            },
            calc(){
                this.count++;
            }

        }
    })
</script>

本人从事软件项目开发20多年,2005年开始从事Java工程师系列课程的教学工作,录制50多门精品视频课程,包含java基础,jspweb开发,SSH,SSM,SpringBoot,SpringCloud,人工智能,在线支付等众多商业项目,每门课程都包含有项目实战,上课PPT,及完整的源代码下载,有兴趣的朋友可以看看我的在线课堂

讲师课堂链接:https://edu.csdn.net/lecturer/893

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1051971.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云ACP知识点(三)

1、弹性伸缩不仅提供了在业务需求高峰或低谷时自动调节ECS实例数量的能力&#xff0c;而且提供了ECS实例上自动部署应用的能力。弹性伸缩的伸缩配置支持多种特性&#xff0c;例如______,帮助您高效、灵活地自定义ECS实例配置&#xff0c;满足业务需求。 标签、密钥对、 实例RAM…

侯捷 C++ STL标准库和泛型编程 —— 3 容器(关联式容器)

3.3 关联式容器 3.3.0 RB-Tree 红黑树&#xff08;Red-Black Tree&#xff09;是一种自平衡的二叉搜索树 BST&#xff08;AVL 是另一种&#xff09; rb-tree 提供遍历操作和 iterators&#xff0c;按中序遍历遍历&#xff0c;便可以得到排序状态 不能用 iterator 去改变元素的…

CCC标准——PHY

1.介绍 UWB物理层使用基于频带受限脉冲的脉冲无线电信号波形。UWB物理层主要用于测距&#xff0c;但也可以用于数据通信。在CCC标准中&#xff0c;物理层的具体定义依然基于IEEE 802.15.4z标准中的HRP UWB PHY&#xff0c;支持更高的脉冲重复频率。 对于增强测距设备&#xf…

华为云云耀云服务器L实例评测|云耀云服务器L实例搭建个人镜像站

华为云云耀云服务器L实例评测&#xff5c;云耀云服务器L实例搭建个人镜像站 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点 二、Apache介绍2.1 Apache简介2.2 Apache特点 三、本次实践介绍3.1 本次实践简介3.2 本次环境规划 四、远程登录华为云…

Springboot对MVC、tomcat扩展配置

Springboot在web层的开发基本都是采用Springmvc框架技术&#xff0c;但是Springmvc中的某些配置在boot是没有的&#xff0c;我们就应该根据自己的需求进行对mvc扩展配置 Springboot1.x版本如何配置 通过注解Configuration一个类&#xff0c;继承webmvcconfigureradapter&#…

AutoAnimate - 无需任何配置,一行代码自动为元素添加优雅的过渡动画,可以搭配 Vue / React 和 Sevelt 使用

这个动画库只要一行代码就可以自动在我们的组件中添过渡动画&#xff0c;为什么这么省事高效呢&#xff1f; AutoAnimate 是一个无需任何配置&#xff0c;自动为我们开发的 Web 项目添加平滑过渡动画的 JavaScript 工具库。AutoAnimate 和之前推荐的一些 js 动画库相比&#x…

贪婪的互联网电视让用户忍无可忍,广电总局出手了

广电总局要求电视需要在今年底前实现开机就看电视&#xff0c;开机广告、关机广告将不再被允许&#xff0c;这对于饱受互联网电视无孔不入的广告困扰的消费者来说无疑是一大利好&#xff0c;他们早已无法忍受越来越多的广告。 一、贪婪的互联网电视 互联网电视企业曾以羊毛出在…

Java下的序列化和反序列化(写出和读入)

代码如下&#xff1a; public class MyWork {public static void main(String[] args) throws IOException, ClassNotFoundException {//序列化File f new File("testFile/testObject.txt");ObjectOutputStream oos new ObjectOutputStream(new FileOutputStream(…

【聊天系统的优化】RPC方式的优化

RPC方式的优化 聊天系统的中RPC的选择Jsonprotobufmsgpack 聊天系统的中RPC的选择 在RPC方式中&#xff0c;常用的三种方式&#xff1a;Json&#xff0c;protobuf&#xff0c;Msgback 设定一个简单的加和服务&#xff0c;客户端发送一个list给服务端&#xff0c;需要将list的…

<Xcode> Xcode IOS无开发者账号打包和分发

关于flutter我们前边聊到的初入门、数据解析、适配、安卓打包、ios端的开发和黑苹果环境部署&#xff0c;但是对于苹果的打包和分发&#xff0c;我只是给大家了一个链接&#xff0c;作为一个顶级好男人&#xff0c;我认为这样是对大家的不负责任&#xff0c;那么这篇就主要是针…

Centos 7分区失败,进入 dracut 页面,恢复操作

1. 问题场景&#xff1a; 分区失败&#xff0c;重启了虚拟机&#xff0c;导致系统进入 dracut 页面。开机显示 直接回车&#xff0c;等待重启失败的页面 自动进入了 dracut 模式(救援)。 2. 临时解决进入系统 查了一下&#xff1a;如果出现 “dracut” 提示、进入 dracut…

【分布式计算】三、虚拟化 Virtualization

1.什么是虚拟化 1.1.非虚拟化 我们首先来认识什么是非虚拟化   1.一台机器、一个操作系统、几个应用程序   2.应用程序可能会相互影响。   3.机器利用率较低&#xff0c;正常情况下低于25%。 关于X86平台&#xff1a; 1.服务器基础设施利用率低&#xff08;10-18%&#…

【网络协议】IP

当连接多个异构的局域网形成强烈需求时&#xff0c;用户不满足于仅在一个局域网内进行通信&#xff0c;他们希望通过更高一层协议最终实现异构网络之间的连接。既然需要通过更高一层的协议将多个局域网进行互联&#xff0c;那么这个协议就必须为不同的局域网环境定义统一的寻址…

《C和指针》读书笔记(第十四章 预处理器)

目录 0 简介1 预定义符号2 #define2.1 宏2.2 #define替换2.3 宏与函数2.4 带副作用的宏参数2.5 命名约定2.6 #undef2.7 命令行定义 3 条件编译3.1 是否被定义3.2 嵌套指令 4 文件包含4.1 函数库文件包含4.2 本地文件包含4.3 嵌套文件包含 5 其他指令6 总结 0 简介 编译一个C程…

Leetcode 662. 二叉树最大宽度

文章目录 题目代码&#xff08;9.30 首刷看解析&#xff09; 题目 Leetcode 662. 二叉树最大宽度 代码&#xff08;9.30 首刷看解析&#xff09; class Solution { public:int widthOfBinaryTree(TreeNode* root) {unsigned long long res 1;using pr pair<TreeNode*, u…

数据集笔记:芝加哥共享单车OD数据

2013年到2022年3月&#xff0c;芝加哥共享单车OD数据 数据地址&#xff1a;Divvy Data (divvybikes.com)

使用python脚本的时间盲注完整步骤

文章目录 一、获取数据库名称长度二、获取数据库名称三、获取表名总长度四、获取表名五、获取指定表列名总长度六、获取指定表列名七、获取指定表指定列的表内数据总长度八、获取指定表指定列的表内数据 一、获取数据库名称长度 测试环境是bwapp靶场 SQL Injection - Blind - …

【考研数学】高等数学第七模块 —— 曲线积分与曲面积分 | 2. 对坐标的曲线积分(第二类积分)

文章目录 一、曲线积分1.2 对坐标的曲线积分&#xff08;第二类曲线积分&#xff09;1.2.1 问题产生 —— 做功问题1.2.2 对坐标的曲线积分的定义&#xff08;了解&#xff09;1.2.3 对坐标的曲线积分的性质1.2.4 二维空间对坐标的曲线积分计算法1. 定积分法2. 二重积分法&…

YOLOv7改进:结合CotNet Transformer结构

1.简介 京东AI研究院提出的一种新的注意力结构。将CoT Block代替了ResNet结构中的3x3卷积&#xff0c;在分类检测分割等任务效果都出类拔萃 论文&#xff1a;Contextual Transformer Networks for Visual Recognition 论文地址&#xff1a;https://arxiv.org/abs/2107.12292 有…

C进阶--数据的存储

⚙ 1. 数据类型介绍 1.1基本内置类型 ⭕ 整形&#xff1a; char(char又叫短整型)unsigned charsigned charshortunsigned short[int]signed short [int]intunsigned intsigned intlongunsigned long [int]signed long [int] ⭕ 浮点数&#xff1a; float&#xff08;单精度浮…