IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue - v-bind -> 正文阅读

[JavaScript知识库]Vue - v-bind


一、v-bind动态绑定属性

除了内容需要动态来决定, 属性我们也希望动态来绑定
比如动态绑定a元素的href属性
比如动态绑定img元素的src属性
这是我们可以使用v-bind指令

作用

动态绑定属性

1. 使用

属性里面不可以使用mustache语法

<body>
  <div id="app">
    <img src="{{imgUrl}}"/>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: "#app",
      data: {
        imgUrl: "https://pic.netbian.com/tupian/27781.html"
      }
    })
  </script>
</body>

在这里插入图片描述

2. 使用v-bind指令

在需要动态绑定数据的属性前面添加v-bind

<body>
  <div id="app">
  	<!-- 使用v-bind动态给src属性绑定数据 -->
    <img v-bind:src="imgUrl"/>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        imgUrl: 'https://pic.netbian.com/uploads/allimg/210718/001826-16265387066150.jpg'
      }
    })
  </script>
</body>

3. v-bind语法糖

v-bind有一个语法糖, 也就是简写方式. 即 :

<body>
  <div id="app">
    <!-- 使用v-bind动态给src属性绑定数据 -->
    <img v-bind:src="imgUrl"/>
    <!-- 语法糖形式 -->
    <a :href="aUrl">百度一下</a>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        imgUrl: 'https://pic.netbian.com/uploads/allimg/210718/001826-16265387066150.jpg',
        aUrl: 'https://www.baidu.com'
      }
    })
  </script>
</body>

二、v-bind动态绑定class

1. 基本使用

<!DOCTYPE html>
<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">
    <h2 :class="className">v-bind动态绑定class</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        className: 'active'
      }
    })
  </script>
</body>
</html>

三、class动态绑定 ( 对象语法 )

1. 对象语法有下面这些用法

  1. 直接通过{ }绑定一个类 : <h2 :class="{'active': isActive}">Hello World</h2>
  2. 可以通过判断, 传入多个值 : <h2 :class="{'active': isActive, 'line': isLine}">Hello World</h2>
  3. 和普通的类同时存在 : <h2 class="title" :class="{'active': isActive}">Hello World</h2>

对象里面的参数是以键值对形式存在的.
键为类名, 值为布尔值.
当值为true的时候, 这个类就会被添加到标签上面

<body>
  <div id="app">
    <h2 :class="{active: isActive, ac: isAc}">v-bind动态绑定class</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        isActive: true,
        isAc: false
      }
    })
  </script>
</body>

在这里插入图片描述

2. 案例 : 点击实现字体变色

<!DOCTYPE html>
<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">
    <h2 :class="{active: isActive, ac: isAc}">v-bind动态绑定class</h2>
    <!-- 给按钮绑定一个点击事件 -->
    <button v-on:click="btnClick">点击</button>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        isActive: true,
        isAc: false
      },
      methods: {
        btnClick: function() {
          // 给isActive重新赋值
          this.isActive = !this.isActive
        }
      },
    })
  </script>
</body>
</html>

3. 把class的对象提取为一个方法并调用

<!DOCTYPE html>
<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">
    <h2 :class="getClasses()">v-bind动态绑定class</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        isActive: true,
        isAc: false
      },
      methods: {
        getClasses: function() {
          return { active: this.isActive, ac: this.isAc }
        }
      }
    })
  </script>
</body>
</html>

五、class动态绑定 ( 数组语法 )

<body>
  <div id="app">
    <h2 :class="[className, className2]">v-bind动态绑定class(数组语法)</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        className: 'active',
        className2: 'ac'
      }
    })
  </script>
</body>

</html>

1. 把数组放到一个方法里面并调用

<body>
  <div id="app">
    <h2 :class="getClasses()">v-bind动态绑定class(数组语法)</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        className: 'active',
        className2: 'ac'
      },
      methods: {
        getClasses: function() {
          return [this.className, this.className2]
        }
      },
    })
  </script>
</body>

案例 : 点击变色

<body>
  <div id="app">
    <ul>
      <li v-for="(item, index) in movies" 
          :class="{active: index===currentIndex}" 
          v-on:click="setIndex(index)">
          {{item}}
      </li>
    </ul>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        currentIndex: 0,
        movies: ['大闹西游1','大闹西游2','大闹西游3','大闹西游4']
      },
      methods: {
        setIndex: function(index) {
          this.currentIndex = index
        }
      },
    })
  </script>
</body>

六、v-bind动态绑定style

语法

<h2 :style="{key(属性名): value(属性值)}"></h2>

使用

  • 属性名如果用类似font-size这种方式, 则font-size必须加单引号
  • 如果使用驼峰命名(fontSize),则不需要加单引号
  • 这里的’50px’必须加单引号
<body>
  <div id="app">
    <!-- 属性名如果用font-size, 则font-size必须加单引号 -->
    <!-- 如果使用驼峰命名(fontSize),则不需要加单引号 -->
    <!-- 这里的'50px'必须加单引号 -->
    <h2 :style="{'font-size': '50px'}">动态绑定style</h2>
    <!-- 动态取值 -->
    <h2 :style="{'font-size': size}">动态绑定style</h2>
  </div>
  <script src="../js/vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        size: '100px'
      }
    })
  </script>
</body>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:20:57  更:2021-07-24 11:22:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 13:20:31-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码