v-bind复习

news2024/10/6 8:34:33

1.v-bind 绑定元素属性

 前端讲的一系列指令,主要是将值插入到模板内容中。


 但是,除了内容需要动态来决定外,某些属性我们也希望动态来绑定。
 比如动态绑定 a 元素的 href 属性;
 比如动态绑定 img 元素的 src 属性;


 绑定属性我们使用 v-bind :
图片的链接 src 、网站的链接 href 、动态绑定一些类、样式等等
 用法:动态地绑定一个或多个 attribute ,或一个组件 prop 到表达式。

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
 
  <div id="app">
    <div>
      <button @click="switchImage">切换图片</button>
    </div>
 
    <!-- 1.绑定img的src属性 -->
    <img v-bind:src="showImgUrl" alt="">
    <!-- 语法糖: v-bind -> : -->
    <img :src="showImgUrl" alt="">
 
    <!-- 2.绑定a的href属性 -->
    <a :href="href">百度一下</a>
 
  </div>
   
  <script src="../lib/vue.js"></script>
  <script>
    // 1.创建app
    const app = Vue.createApp({
      // data: option api
      data: function() {
        return {
          imgUrl1: "http://p1.music.126.net/agGc1qkogHtJQzjjyS-kAA==/109951167643767467.jpg",
          imgUrl2: "http://p1.music.126.net/_Q2zGH5wNR9xmY1aY7VmUw==/109951167643791745.jpg",
 
          showImgUrl: "http://p1.music.126.net/_Q2zGH5wNR9xmY1aY7VmUw==/109951167643791745.jpg",
          href: "http://www.baidu.com"
        }
      },
 
      methods: {
        switchImage: function() {
          this.showImgUrl = this.showImgUrl === this.imgUrl1 ? this.imgUrl2: this.imgUrl1
        }
      }
    })
 
    // 2.挂载app
    app.mount("#app")
  </script>
</body>
</html>

2.v-bind绑定 class的对象与数组

我们可以传给 :class (v-bind:class 的简写 ) 一个对象,以动态地切换 class 。

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .active {
      color: red;
    }
  </style>
</head>
<body>
 
  <div id="app">
    <!-- 1.基本绑定class -->
    <h2 :class="classes">Hello World</h2>
 
    <!-- 2.动态class可以写对象语法 -->
    <button :class=" isActive ? 'active': '' " @click="btnClick">我是按钮</button>
 
    <!-- 2.1.对象语法的基本使用(掌握) -->
    <button :class="{ active: isActive }" @click="btnClick">我是按钮</button>
 
    <!-- 2.2.对象语法的多个键值对 -->
    <button :class="{ active: isActive, why: true, kobe: false }" @click="btnClick">我是按钮</button>
     
    <!-- 2.3.动态绑定的class是可以和普通的class同时的使用 -->
    <button class="abc cba" :class="{ active: isActive, why: true, kobe: false }" @click="btnClick">我是按钮</button>
     
    <!-- 2.4.动态绑定的class是可以和普通的class同时的使用 -->
    <button class="abc cba" :class="getDynamicClasses()" @click="btnClick">我是按钮</button>

  </div>
   
  <script src="../lib/vue.js"></script>
  <script>
    // 1.创建app
    const app = Vue.createApp({
      // data: option api
      data: function() {
        return {
          classes: "abc cba nba",
          isActive: false,
          className: "why"
        }
      },
 
      methods: {
        btnClick: function() {
          this.isActive = !this.isActive
        },
 
        getDynamicClasses: function() {
          return { active: this.isActive, why: true, kobe: false }
        }
      }
    })
 
    // 2.挂载app
    app.mount("#app")
  </script>
</body>
</html>

绑定 class – 数组语法

数组语法:我们可以把一个数组传给 :class ,以应用一个 class 列表;

    <h2 :class="['abc', 'cba']">Hello Array</h2>
    <h2 :class="['abc', className]">Hello Array</h2>
    <h2 :class="['abc', className, isActive? 'active': '']">Hello Array</h2>
    <h2 :class="['abc', className, { active: isActive }]">Hello Array</h2>

3.v-bind绑定 style 

注意这里要加单引号才能正常运行

CSS property 名可以用驼峰式 (camelCase) 或短横线分隔 (kebab-case ,记得用引号括起来 ) 来命名;

 <h2 v-bind:style="{ 'font-size':'30px'}">哈哈哈哈</h2>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
 
  <div id="app">
    <!-- 1.普通的html写法 -->
    <h2 style="color: red; font-size: 30px;">哈哈哈哈</h2>
 
    <!-- 2.style中的某些值, 来自data中 -->
    <!-- 2.1.动态绑定style, 在后面跟上 对象类型 (重要)-->
    <h2 v-bind:style="{ color: fontColor, fontSize: fontSize + 'px' }">哈哈哈哈</h2>
    <!-- 2.2.动态的绑定属性, 这个属性是一个对象 -->
    <h2 :style="objStyle">呵呵呵呵</h2>
 
    <!-- 3.style的数组语法 -->
    <h2 :style="[objStyle, { backgroundColor: 'purple' }]">嘿嘿嘿嘿</h2>
  </div>
   
  <script src="../lib/vue.js"></script>
  <script>
    // 1.创建app
    const app = Vue.createApp({
      // data: option api
      data: function() {
        return {
          fontColor: "blue",
          fontSize: 30,
          objStyle: {
            fontSize: '50px',
            color: "green"
          }
        }
      },
    })
 
    // 2.挂载app
    app.mount("#app")
 
  </script>
</body>
</html>

4.绑定元素属性名

 在某些情况下,我们属性的名字可能也不是固定的:
 如果属性名称不是固定的,我们可以使用 :[ 属性名 ]=“ 值” 的格式来定义;
 这种绑定的方式,我们称之为动态绑定属性;

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
 
  <div id="app">
    <h2 :[name]="'aaaa'">Hello World</h2>
  </div>
   
  <script src="../lib/vue.js"></script>
  <script>
    // 1.创建app
    const app = Vue.createApp({
      // data: option api
      data: function() {
        return {
          name: "class"
        }
      },
    })
 
    // 2.挂载app
    app.mount("#app")
  </script>
</body>
</html>

5.v-bind绑定一个对象

如果我们希望将一个对象的所有属性,绑定到元素上的所有属性,应该怎么做呢?
 非常简单,我们可以直接使用 v-bind 绑定一个 对象;
 案例: info 对象会被拆解成 div 的各个属性

 

<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <h2 :name="name" :age="age" :height="height">Hello World</h2>

      <!-- v-bind绑定对象: 给组件传递参数 -->
      <h2 v-bind="infos">Hello Bind</h2>
    </div>

    <script src="../lib/vue.js"></script>
    <script>
      // 1.创建app
      const app = Vue.createApp({
        // data: option api
        data: function () {
          return {
            infos: { name: "why", age: 18, height: 1.88, address: "广州市" },

            name: "why",
            age: 18,
            height: 1.88,
          };
        },
      });

      // 2.挂载app
      app.mount("#app");
    </script>
  </body>
</html>

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

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

相关文章

企业数字化转型的“有为”与“数字化”

对企业而言&#xff0c;推动数字化转型势在必行&#xff0c;但困难重重&#xff0c;需要破旧立新的战略设计&#xff0c;更需要循序渐进的策略部署。对企业而言&#xff0c;唯有坚持“有为数据、有为组织、有为决策、有为创新”的理念和目标&#xff0c;探索战略、设施、资源、…

Python对Excel不同的行分别复制不同的次数

本文介绍基于Python语言&#xff0c;读取Excel表格文件数据&#xff0c;并将其中符合我们特定要求的那一行加以复制指定的次数&#xff0c;而不符合要求的那一行则不复制&#xff1b;并将所得结果保存为新的Excel表格文件的方法。 这里需要说明&#xff0c;在我们之前的文章Pyt…

动态规划——粉刷房子

题目链接 leetcode在线oj题——粉刷房子 题目描述 假如有一排房子&#xff0c;共 n 个&#xff0c;每个房子可以被粉刷成红色、蓝色或者绿色这三种颜色中的一种&#xff0c;你需要粉刷所有的房子并且使其相邻的两个房子颜色不能相同。 当然&#xff0c;因为市场上不同颜色油…

NTFS权限

文章目录 一、NTFS权限概述二、文件系统概述三、NTFS文件系统特点1. 提高磁盘读写性能2. 可靠性3. 磁盘利用率4. 支持单个文件大于4个G 四、修改NTFS权限1. 取消权限继承2. 文件及文件夹权限3. 权限累加4. 拒绝最大5. 取得所有权6. 强制继承7. 文件复制对权限的影响 一、NTFS权…

天津良心python培训班品牌(Python开发的主要领域)

Python可以用于各种领域&#xff0c;如数据科学、机器学习、人工智能、网络编程等等&#xff0c;因此&#xff0c;学习Python可以为零基础同学提供广泛的职业选择&#xff0c;并为其他编程语言打下坚实的基础。 自学python要多久 python是一门非常适合初学者入门的编程语言&a…

Resultful风格代码代码实践

1.原则 GET 查询 POST 添加 PUI(全字段更新)、PATCH(更新部分字段)更新 DELETE 删除 2.使用复数名词 user> users car > cars product > products 3.请求和响应时候指定accpect: RequestBody reponse: ResponseBody 4.资源唯一标识在通过参数传递时使用路径传递传递 u…

128TB只要128元,国产山寨 SSD 把老外割疯了

国产颗粒崛起带动的 SSD 白菜价&#xff0c;你永远不知道现在的史低价是不是又在山顶。 不过&#xff0c;我如果拿出几乎1折的 990 Pro &#xff0c;阁下应该如何应对&#xff1f; 正如上图所见&#xff0c;Amazon、AliExpress、Ebay 等老外用的网购平台上有很多这样「做慈善」…

Error:(3, 32) java: 程序包org.springframework.boot不存在

idea2018创建springboot的maven项目&#xff0c;之前创建项目都可以正常使用&#xff0c;突然创建这个项目之后就无法拉取依赖&#xff0c;反复刷新maven都没有用。 在网上看了一大堆文件说改这改那&#xff0c;结果都是错的。 最总解决方法&#xff1a; 错误原因是springboo…

JavaScript基础篇(1-10题)

此文章&#xff0c;来源于印客学院的资料【第一部分&#xff1a;基础篇(105题)】&#xff0c;这里只是分享&#xff0c;便于查漏补缺。 诸君可以根据自己实际情况&#xff0c;自行衡量&#xff0c;看看哪里需要加强。 概述如下&#xff1a; 闭包说说你对作用域链的理解JavaSc…

JavaCV音视频开发宝典:如何使用JavaCV读取mp3文件ID3V2专辑封面图片显示并保存成jpg图片和png图片并保留png透明度

《JavaCV音视频开发宝典》专栏目录导航 《JavaCV音视频开发宝典》专栏介绍和目录 ​ 前言 在此之前,我们已经使用开源库"MP3AGIC“去操作mp3,读取封面图像,那么使用JavaCV能不能做到呢? 当然可以。 当然封面图片有两种情况,一种是使用jpg图片作为封面的,这种比较简…

Oracle Profile概念与示例

Profile和SQL Profile是不同的&#xff0c;前者是用CREATE PROFILE创建&#xff0c;后者和SQL Tuning有关。 profile的定义为&#xff1a; which is a set of limits on database resources. If you assign the profile to a user, then that user cannot exceed these limits…

【简单易懂版】使用IDEA操作Hadoop(增删改查)

文章目录 一、引入hdfs依赖二、创建hdfs工具类三、测试hdfs工具类反思 前提&#xff1a;服务器中已经配置好了hadoop 本人亲测&#xff0c;以下代码已经跑通&#xff0c;基础功能都可以完成&#xff01;&#xff01;&#xff01;希望对大家有用&#xff01;&#xff01;&#x…

2023年,如何顺利通过品牌备案?

众所周知&#xff0c;在当今社会一个产品要想在市场上立足的话&#xff0c;那树立自己的品牌形象就显得尤为重要了&#xff0c;品牌形象树立起来了&#xff0c;才能够更好的得到消费者的认可&#xff0c;才会有更多的消费者来购买产品。 品牌代表了专业、规范、保证、服务等维…

解密算法王国:揭秘程序员必备技能(超详细)

解密算法王国&#xff1a;揭秘程序员必备技能&#xff08;超详细&#xff09; 概述一、算法基础二、排序算法2.1 冒泡排序 (Bubble Sort)2.2 插入排序 (Insertion Sort)2.3 快速排序 (Quick Sort)2.4 归并排序 (Merge Sort) 三、查找算法3.1 线性查找 (Linear Search)3.2 二分查…

idea专业版和idea社区版整合Tomcat,并将war包部署

文章目录 idea专业版和idea社区版整合Tomcat&#xff0c;并将war包部署一、idea专业版部署二、idea社区版部署三、错误案例 idea专业版和idea社区版整合Tomcat&#xff0c;并将war包部署 开发过程中&#xff0c;由于需要运用云平台&#xff0c;所以从新配置开发环境&#xff0…

嵌入式软件测试笔记11 | 测试设计技术简单说明

11 | 测试设计技术简单说明 1 测试设计技术的步骤1.1 确定测试情形1.2 确定逻辑测试用例1.3 确定物理测试用例1.4 建立初始化环境1.5 组合测试脚本1.6 定义测试方案 2 测试设计技术的优点3 测试设计技术的特征3.1 白盒或黑盒3.2 导出测试用例的原则3.2.1 处理逻辑3.2.2 等价类划…

Git问题:git拉取/推送github代码出现Connection closed by问题

目录 问题原因解决方法一方法二方法三 问题 使用git去拉取github代码的时候&#xff0c;出现了如下问题 Connection closed by ip port 致命错误&#xff1a;无法读取远程仓库。 请确认您有正确的访问权限并且仓库存在。 或 Connection closed by ip port fatal : Could not r…

广告语如何翻译,哪里比较专业

现如今&#xff0c;随着全球经济的不断发展&#xff0c;国际国内商品广告无处不在&#xff0c;广告语翻译也显得越来越重要。那么如何做好广告语的英语翻译&#xff0c;北京哪个翻译公司比较专业&#xff1f; 业内人士指出&#xff0c;广告语作为一种信息传达的方式有其特殊性。…

Rxjava框架学习总结

一.前言 本篇文章学习的目标&#xff1a; Rxjava体系的知识相当庞大&#xff0c;我们仅针对以上内容进行学习&#xff1b;其次&#xff0c;源码的细节是比较复杂的&#xff0c;我们以弄清楚原理为主&#xff0c;不会深入细节&#xff1b; 需要弄清楚的概念&#xff1a;被观察…

氨基保护产物多肽2056902-27-1,Boc-EB,用于实验室科研研究

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ 产品描述&#xff1a; 放射显影多肽&#xff08;CAS号&#xff1a;2056902-27-1&#xff09;&#xff0c;氨基保护产物多肽理论分析&#xff1a; 中文名&#xff1a;EB-NH2&#xff0c;(E)-4-氨基-6-(((4-氨基-3,3-二甲基-…