v-bind的简略介绍

v-bind用于绑定一个或多个属性值,或者向另一个组件传递props值。目前,个人所用之中,更多的是使用于图片的链接src,a标签中的链接href,还有样式以及类的一些绑定,以及props传递的时候,在子组件的标签中所绑定。目前在做的项目中,有些例子,记录下。多数情况下,为了简洁,还是更喜欢写”:“这个语法糖来代替v-bind,下面的例子中都是写的这个。

v-bind绑定class
1.对象语法

//用法一:直接通过{}绑定一个类
<h2 :class="{'active': isActive}">Hello World</h2> //用法二:也可以通过判断,传入多个值
<h2 :class="{'active': isActive, 'line': isLine}">Hello World</h2> //用法三:和普通的类同时存在,并不冲突
//注:如果isActive和isLine都为true,那么会有title/active/line三个类
<h2 class="title" :class="{'active': isActive, 'line': isLine}">Hello World</h2> //用法四:如果过于复杂,可以放在一个methods或者computed中
//注:classes是一个计算属性
<h2 class="title" :class="classes">Hello World</h2>

2.数组语法

<h2 :class="['active']">Hello World</h2>
<h2 :class=“[‘active’, 'line']">Hello World</h2>
<h2 class="title" :class=“[‘active’, 'line']">Hello World</h2> //如果过于复杂,可以放在一个methods或者computed中
//注:classes是一个计算属性
<h2 class="title" :class="classes">Hello World</h2>

实际情况下,感觉目前敲的还是用对象语法会更多些。记忆中最深的是,在写tabbar组件的时候,为了实现tabbar中的文字,可以点击时候变颜色,使用了绑定属性。下方示例的active绑定了isactive,isactive为设置的一个计算属性,如果为true时,会激活active,使得对应的<div>模块,获得active属性。

<template>
<div class="eachtabbar" v-on:click="itemclick">
<div v-if="!isactive"><slot name="img-dark"></slot></div>
<div v-else> <slot name="img-light"></slot></div>
<div v-bind:class="{active:isactive}"> <slot name="text"></slot></div>
</div>
</template> <script>
export default {
name: "eachtabbar",
props:{
path:String
},
data(){
return{ }
},
computed:{
isactive(){
return this.$route.path==this.path
}
},
methods:{
itemclick(){
if(this.$route.path==this.path){
return
}
this.$router.push(this.path)
}
}
//if语句是为了处理相同路径报错问题
}
</script> <style scoped>
.eachtabbar{
flex: 1;
text-align: center;
height: 49px;
}
.eachtabbar img{
height: 24px;
width: 24px;
margin-top: 3px;
vertical-align: middle;
}
.active{
color: yellow;
}
</style>

v-bind绑定style

1.对象语法

:style="{color: currentColor, fontSize: fontSize + 'px'}",style后面跟的是一个对象类型。对象的key是CSS属性名称,对象的value是具体赋的值,值可以来自于data中的属性。

2.数组语法

<div v-bind:style="[baseStyles, overridingStyles]"></div>,style后面跟的是一个数组类型 多个值以,分割即可。

还是上一个例子,在写tabbar组件的时候,在想如果我不想每一块的点击都是一个颜色,那么怎么设置呢,因此使用了绑定style。计算属性中设置了一个activeStyle属性,且通过props默认若不更改情况下,默认设置为黄色。若要更改直接在标签中直接设置active-color即是。

<template>
<div class="tabbar-item" v-on:click="itemclick">
<div v-if="!isActive"><slot name="item-pic"></slot></div>
<div v-else><slot name="item-cli"></slot></div>
<div v-bind:style="activeStyle"><slot name="item-text"></slot></div></div>
</template> <script>
export default {
name: "tabbaritem",
props:{
path:String,
activeColor: {
type:String,
default:"yellow"
}
},
data(){
return{
// isActive:true
}
},
computed:{
isActive(){
return this.$route.path==this.path
},
activeStyle(){
return this.isActive? {color:this.activeColor}:{}
}
},
methods:{
itemclick(){
this.$router.push(this.path)
}
}
}
</script> <style scoped>
.tabbar-item{
flex: 1;
text-align: center;
height: 49px;
}
.tabbar-item img{
height: 24px;
width: 24px;
margin-top: 3px;
vertical-align: middle;
}
/*.active{*/
/* color: #bfbf0d;*/
/*}*/ </style>

vue的绑定属性v-bind的更多相关文章

  1. vue v-bind绑定属性和样式

    这期跟大家分享的,是v-bind指令.它可以往元素的属性中绑定数据,也可以动态地根据数据为元素绑定不同的样式. 绑定属性 最简单的例子,我们有一张图片,需要定义图片的src.我们可以直接在元素的属性里 ...

  2. vue 数据绑定 绑定属性 循环渲染数据

    <template> <!-- vue的模板里面 所有的内容要被一个根节点包含起来 --> <div id="app"> <h2>{ ...

  3. Vue 目录结构 绑定数据 绑定属性 循环渲染数据

    一.目录结构分析 node_modules 项目所需要的各种依赖 src 开发用的资源 assets 静态资源文件 App.vue 根组件 main.js 配置路由时会用 .babelrc 配置文件 ...

  4. React对比Vue(02 绑定属性,图片引入,数组循环等对比)

    import React, { Component } from 'react'; import girl from '../assets/images/1.jpg' //这个是全局的不要this.s ...

  5. vue 绑定属性 绑定Class 绑定style

    <template> <div id="app"> <h2>{{msg}}</h2> <br> <div v-bi ...

  6. Vue 目录结构分析 数据绑定 绑定属性 循环渲染数据 数据渲染

    一.目录结构分析 node_modules 项目所需要的各种依赖 src 开发用的资源 assets 静态资源文件 App.vue 根组件 main.js 配置路由时会用 .babelrc 配置文件 ...

  7. vue.js--基础 v-bind绑定属性使用

    背景:因为10月要休产假了,8月的时间我工作很少,因为最开始做平台我一直做的是后端,前端很少接触,所以现在有时间,就学习前端基础,前端使用的vue.js+element,因为没有基础,所以下了一个视频 ...

  8. Vue绑定属性 绑定Class 绑定style

    <template> <div id="app"> <h2>{{msg}}</h2> <br> <div v-bi ...

  9. 黑马vue---17、vue中通过属性绑定绑定style行内样式

    黑马vue---17.vue中通过属性绑定绑定style行内样式 一.总结 一句话总结: 如果属性名中带有短线必须加引号,比如: h1StyleObj: { color: 'red', 'font-s ...

随机推荐

  1. 零钱问题的动态规划解法——用 n 种不同币值的硬币凑出 m 元,最少需要多少硬币。

    输入格式:第一行输入需要凑的钱数 m 和硬币的种类 n (0<m<100,0<n<10),第二行输入 n 种硬币的具体币值,假设硬币供应量无限多. 输出格式:输出最少需要的硬币 ...

  2. 第8.14节 Python类中内置方法__str__详解

    一. object类内置方法__str__和函数str 类的内置方法__str__和内置函数str实际上实现的是同一功能,实际上str调用的就是__str__方法,只是调用方式不同,二者的调用语法如下 ...

  3. PyQt(Python+Qt)学习随笔:QScrollArea的widgetResizable属性

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 滚动区域的widgetResizable属性用于控制滚动区域的内容部署层是否应跟随滚动区域的大小变化 ...

  4. Oracle表操作-创建及增删改查

    数据类型: 1.CHAR:定长字符类型,默认长度是1,最长不超过2000字节. 2.CARCHAR2(length):可变字符类型,默认长度是1,最长不超过4000字符. 3.NUMBER(P,S): ...

  5. js- 实现属性名的拼接 obj['name']

     obj.name---->obj[name] 这两种调用方式一样,使用obj.name内部转换成 obj['name'], 使用obj['name']更快. obj['name'] 里面必须是 ...

  6. 2020武汉dotNET俱乐部分享交流圆满结束

    经过长达2个多月的准备,终于在12月5日圆满的举行了武汉首届dotNET俱乐部线下分享交流活动.我们一共精心准备了3个目前比较热门的主题,分别如下: Jason分享的<ABP开发框架的扩展应用& ...

  7. 团队作业4-Day3

    团队作业4-Day3 项目git地址 1. 站立式会议 2. 项目燃尽图 3. 适当的项目截图 今日暂无较大代码更新 4. 代码/文档签入记录(部分) 5. 每人每日总结 吴梓华:今天未进行开发,学习 ...

  8. Python(三) PIL, Image生成验证图片

    Python(三) PIL, Image生成验证图片 安装好PIL,开始使用. 在PyCharm中新建一个文件:PIL_Test1.py 1 # PIL 应用练习 2 # 3 # import PIL ...

  9. 如何更简单的使用Polly

    Polly 弹性瞬时错误处理库 Polly是一个C#实现的弹性瞬时错误处理库 它可以帮助我们做一些容错模式处理,比如: 超时与重试(Timeout and Retry) 熔断器(Circuit Bre ...

  10. Mysql8.0新特性【详细版本】

    1.  账户与安全 用户创建与授权 之前:创建用户并授权 1 grant all privileges on *.* to 'myuser'@'%' identified by '3edc#EDC'; ...