一、什么是v-bind指令
v-bind指令用于响应更新HTML特性,允许将一个或多个属性动态绑定到表达式。v-bind是应用在动态属性上面的。
二、语法
v-bind语法如下:
也可以简写成下面的形式:
代码示例如下:
- <img :src="imgUrl" :title="title" />
这里的src和title都是<img>标签的属性,这里都是绑定到变量。
v-bind中还可以使用判断,例如:
- <img :src="flag?imgUrl:imgUrl2" />
这里表示如果flag变量的值为true,那么src属性的值是变量imgUrl的值,否则src的属性值就是变量imgUrl2对应的值。
注意:只要是HTML标签的属性都可以这样去绑定属性值。
三、在class属性中使用v-bind指令
代码示例如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>在class属性中使用v-bind指令</title>
- <!--引入vue.js-->
- <script src="node_modules/vue/dist/vue.js" ></script>
- <script>
- window.onload=function(){
- // 构建vue实例
- new Vue({
- el:"#my",// el即element,表示挂载的元素,不能挂载在HTML和body元素上面
- // data表示数据,data中可以是各种数据格式
- data:{
- flag:true,
- varStyle:"bindStyle", //值是样式的名称
- style1:"colorStyle",
- style2:"colorStyle2"
- },
- // 方法
- methods:{
-
- }
- })
- }
- </script>
- <style>
- .colorStyle {
- color: #ff6600;
- }
- .colorStyle2{
- margin-top: 10px;
- background-color: chartreuse;
- border: 1px solid blue;
- }
- .bindStyle {
- margin-top: 5px;
- color: red;
- }
- .bindStyle2 {
- margin-top: 5px;
- color: red;
- background-color: green;
- }
- </style>
- </head>
- <body>
- <div id="my">
- <!--单个样式引用,这里是直接写的data里面变量的名称-->
- <div :class="varStyle">这里是使用v-bind改变样式</div>
- <!--单个样式引用,双引号加单引号,单引号里面是样式的名称,这种方式可以不在data里面写变量-->
- <div :class="'bindStyle2'">直接引用样式的名称,不需要在data里面定义变量</div>
- <!--多个样式引用 使用数组的方式-->
- <div :class="[style1,style2]">这里是同时使用多个样式</div>
- <!--条件判断 格式:样式名:判断条件 注意:样式名不能用变量-->
- <div :class="{'colorStyle2':flag}">条件判断</div>
- <!--三目运算符 flag为真显示style2变量对应的样式,否则显示style1变量对应的样式-->
- <div :class="flag?style2:style1">三目运算符</div>
- </div>
- </body>
- </html>
效果图如下:

四、在style属性中使用v-bind指令
代码示例如下:
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <meta http-equiv="X-UA-Compatible" content="ie=edge">
- <title>style示例</title>
- <!--引入vue.js-->
- <script src="node_modules/vue/dist/vue.js" ></script>
- <script>
- window.onload=function(){
- // 构建vue实例
- new Vue({
- el:"#my",// el即element,表示挂载的元素,不能挂载在HTML和body元素上面
- // data表示数据,data中可以是各种数据格式
- data:{
- flag:true,//布尔型
- style1:{background:'blue'},
- style2:{color:'red'},
- unify:"unifyStyle"
- },
- // 方法
- methods:{
-
- }
- })
- }
- </script>
- <style>
- .unifyStyle{
- margin-top: 10px;
- }
- </style>
- </head>
- <body>
- <div id="my">
- <!--直接写内联样式:要采用驼峰写法,中间的-去掉-->
- <div :style="{color:'#f60',fontSize:'20px',marginTop:'10px'}">
- 内联样式
- </div>
- <!--单个引用-->
- <div :style="style1" :class="unify">
- 单个引用
- </div>
- <!--多个样式引用-->
- <div :style="[style1,style2]" :class="unify">多个样式引用</div>
- <!--三目运算符-->
- <div :style="flag?style1:style2" :class="unify">使用三目运算符进行判断</div>
- </div>
- </body>
- </html>
效果图如下:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。