v-bind详解与常见用法

我的感悟

你真的了解v-bind吗,它的api其实挺多的,如果你没有仔细看完官网,恐怕只知道v-bind是用来绑定值可变的属性。如果不愿意看官网的小伙伴或者是觉得官网晦涩难懂,可以我这篇文章,你会熟悉更多关于v-bind的使用。如有错误,欢迎大家批评指正


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


我的感悟

你真的了解v-bind吗,它的api其实挺多的,如果你没有仔细看完官网,恐怕只知道v-bind是用来绑定值可变的属性。如果不愿意看官网的小伙伴或者是觉得官网晦涩难懂,可以我这篇文章,你会熟悉更多关于v-bind的使用。如有错误,欢迎大家批评指正


提示:以下是本篇文章正文内容,下面案例可供参考

一、v-bind是什么?

简单来说:v-bind就是用于绑定数据和元素属性的

二、详细用法总结

 1.v-bind介绍      

         作用: 动态绑定属性
         语法:       v-bind: 属性名 = "数据名"
         缩写(也叫语法糖):       : 属性名 = "数据名"

 2..v-bind动态绑定class(对象方法)

        语法如下(示例):

         v-bind: class = { 类名1: 布尔值, 类名n......}
<!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 class="app">
		<h1 :class="{active: isActive, line: isLine}">{{message}}</h1>
	</div>
    //所引用的Vue文件
	<script src="../vue.js"></script>
	<script>
		const app = new Vue({
			el: '.app',
			data: {
				
				message: '你好Vue!',
				isActive: true,
				isLine: true
			},
		})
	</script>
</body>
</html>

 3.v-bind动态绑定class(数组语法)

         语法:

          v-bind: class = [ 数组名1, 数组名n......

<div id="app">
		<h1 :class="[active, lineL]">{{message}}</h1>
	</div>
	<script src="../vue.js"></script>
	<script>
		const app = new Vue({
			el:'#app',
			data: {
				message: '你好Vue!',
				active: 'a',
				lineL: 'b'
			},
		})
	</script>

  4.v-bind动态绑定style(对象语法)

        : style = { 属性名: 属性值, ....}

<!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">
		<h1 :style="{fontSize: finalSize + 'px', background: finalColor}">{{message}}</h1>
	</div>
	<script src="../vue.js"></script>
	<script>
		const app = new Vue({
			el:'#app',
			data: {
				message: '你好Vue!',
				finalSize: 100,
				finalColor: 'red',
			},
		})
	</script>
</body>
</html>

 5.v-bind动态绑定style(数组语法)

          : style = [ 数组名1, 数组名2 ....]

<div id="app">
		<h1 :style="[style1, style2]">{{message}}</h1>
		<!-- <h1 :style="getStyles()">{{message}}</h1> -->
	</div>
	<script src="../vue.js"></script>
	<script>
		const app = new Vue({
			el:'#app',
			data: {
				message: '你好Vue!',
				finalSize: 100,
				finalColor: 'red',
				style1: {background: 'red'},
				style2: {color: 'white'}
			},
		})
	</script>

三、v-bind指令的一些注意事项

<h1 :style="font-size:50px;color:red;">this is test</h1>

    这是错误的,因为vue会把font-size当成一个data数据!不能在属性值内直接写入以下语法

<h1 :style="'font-size:50px;color:red;'">this is test</h1>

   可以看到只需要在总的样式前后各加上一个 ’ 单引号即可!这样他就会把他当作字符串了,不过     如果我们这么加样式就没有必要写v-bind了…

  四、我在项目中的应用,结合vue(动态绑定属性)

 <el-form ref="form" :model="form" :rules="rules" label-width="80px">
        <el-row :gutter="20">
          <el-col :span="8">
            <div class="grid-content bg-purple">
              <el-form-item label="单号" prop="gdglId">
                <el-input v-model="form.gdglId" placeholder="请输入单号" v-bind:disabled="disabledData" />
              </el-form-item>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="grid-content bg-purple">
              <el-form-item label="委托部门" prop="deptName">
                <el-input v-model="form.deptName" placeholder="请输入委托部门" />
              </el-form-item>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="grid-content bg-purple">
              <el-form-item label="接单人" prop="projectReceivedBy">
                <el-input v-model="form.projectReceivedBy" placeholder="请输入接单人" />
              </el-form-item>
            </div>
          </el-col>
        </el-row>

        <el-row :gutter="20">
          <el-col :span="8">
            <div class="grid-content bg-purple">
              <el-form-item label="开始时间" prop="startDatetime">
                <el-date-picker clearable
                  v-model="form.startDatetime"
                  type="datetime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="请选择开始时间">
                </el-date-picker>
              </el-form-item>
            </div>
          </el-col>
          <el-col :span="8">
            <div class="grid-content bg-purple">
              <el-form-item label="结束时间" prop="endDatetime">
                <el-date-picker clearable
                  v-model="form.endDatetime"
                  type="datetime"
                  value-format="yyyy-MM-dd HH:mm:ss"
                  placeholder="请选择结束时间">
                </el-date-picker>
              </el-form-item>
            </div>
  data() {
    return {
      // 单号是否禁用
      disabledData:true,
      // 班组人员信息展示

  通过true和false动态改变属性值的变化,适用于属性值为true和false


总结

总体来说v-bind这个指令就是这么个回事了!在实际中多多练习就可以啦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值