v-bind指令用于给html标签设置属性。

<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>

v-bind入门

<div id="app">
<div v-bind:id="id1">文字</div>
</div> <script>
new Vue({
el: '#app',
data: {
id1: 'myid'
}
})
</script>

会渲染如下:

<div id="myid">文字</div>

字符串拼接

<span :text=' "we" + 1 '>使用</span>

会渲染如下:

<span text='we1'>使用</span>

运算:

<div :text='1 + 2'>test</div>

会渲染如下:

<div text="3">test</div>

调用函数:

 <div :text='getText()'>test</div>
......
<script>
export default {
methods: {
getText() {
return "this is text"
}
}
}
</script>

渲染成:

<div text="this is text">test</div>

使用对象:

<template>
<div class="hello">
<div :text='obj'>test</div>
</div>
</template> <script>
export default {
name: 'HelloWorld',
data () {
return {
obj: Object()
}
}
}
</script>

结果:

<div text="[object Object]">test</div>

如果对象有toString方法:

<template>
<div class="hello">
<div :text='obj'>test</div>
</div>
</template> <script>
var obj = Object()
obj.toString = function(){
return "data in obj"
}
export default {
name: 'HelloWorld',
data () {
return {
obj: obj
}
}
}
</script>

则渲染的是toString方法的值:

<div text="data in obj">test</div>

和数组使用:

<template>
<div class="hello">
<div :text='array'>test</div>
</div>
</template> <script>
var array = Array()
array[0] = "1"
array[1] = "2"
export default {
name: 'HelloWorld',
data () {
return {
array: array
}
}
}
</script>

渲染为:

<div text="1,2">test</div>

v-bind vs 计算属性

<template>
<div class="hello">
<div :text='myText'>test</div>
</div>
</template> <script>
export default {
name: 'HelloWorld',
data () {
return {
value: "data"
}
},
computed: {
myText: function(){
return "value is " + this.value
}
}
}
</script>

稍微对比一下,我们不难发现,计算属性和上面的各种功能是一样的,但是在字符串拼接的情况下,使用计算属性的好处是分离了,不在html中写逻辑。所以计算属性是更推荐的用法。

class 属性绑定

<div id="app">
<div v-bind:class="{active: isActive}">文字</div>
</div> <script>
new Vue({
el: '#app',
data: {
isActive: true
}
})
</script>

如果同时多个类都要判断,则可写成<div v-bind:class="{active: isActive, highlight: isHighlight}">文字</div>

绑定computed属性:

而且还可以绑定computed里的属性,毕竟data的数据是静态的,computed的属性可以计算:

<div id="app">
<div v-bind:class="classObject">文字</div>
</div> <script>
new Vue({
el: '#app',
computed: {
classObject: function () {
// 计算过程省略,假设得出了isActive和isDanger的布尔值
return {
'active': isActive,
'text-danger': isDanger
}
}
}
})
</script>

参考:https://www.cnblogs.com/vuenote/p/9328401.html

参考:https://blog.csdn.net/qq_34911465/article/details/81432542

参考:https://www.jianshu.com/p/019b868c0279

12.VUE - v-bind 详解的更多相关文章

  1. vue 源码详解(二): 组件生命周期初始化、事件系统初始化

    vue 源码详解(二): 组件生命周期初始化.事件系统初始化 上一篇文章 生成 Vue 实例前的准备工作 讲解了实例化前的准备工作, 接下来我们继续看, 我们调用 new Vue() 的时候, 其内部 ...

  2. main.js index.html与app.vue三者关系详解

    main.js index.html与app.vue三者关系详解 2019年01月23日 11:12:15 Pecodo 阅读数 186   main.js与index.html是nodejs的项目启 ...

  3. vue 源码详解(一):原型对象和全局 `API`的设计

    vue 源码详解(一):原型对象和全局 API的设计 1. 从 new Vue() 开始 我们在实际的项目中使用 Vue 的时候 , 一般都是在 main.js 中通过 new Vue({el : ' ...

  4. vue 文件目录结构详解

    vue 文件目录结构详解 本篇文章主要介绍了vue 文件目录结构详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 项目简介 基于 vue.js 的前端开发环境,用于前后 ...

  5. Vue props用法详解

    Vue props用法详解 组件接受的选项之一 props 是 Vue 中非常重要的一个选项.父子组件的关系可以总结为: props down, events up 父组件通过 props 向下传递数 ...

  6. 【05】Vue 之 实例详解与生命周期

    Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着. ...

  7. Vue.js项目详解

    还是以Blog项目来讲解,最近我本人利用闲暇时间,以博客作为参考学习一些新的技术并尝试之前没有尝试过的思路来玩玩. 技术看似枯燥,但是带有一个目的来学,你会发现还是蛮有趣的. 主要实践的就是前后端分离 ...

  8. vue:vuex详解

    一.什么是Vuex? https://vuex.vuejs.org/zh-cn 官方说法:Vuex 是一个专为 Vue.js应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相 ...

  9. nodeJs+vue安装教程详解 相信

    相信很多朋友都在装node服务和安装vue的时候会遇到一些问题,下面为大家详细介绍node服务的安装以及vue的安装: 1.nodeJs官网下载版本(根据自己电脑的配置进行相应下载即可):默认安装路径 ...

  10. Vue 可拖拽组件 Vue Smooth DnD 详解和应用演示

    本文发布自 https://www.cnblogs.com/wenruo/p/15061907.html 转载请注明出处. 简介和 Demo 展示 最近需要有个拖拽列表的需求,发现一个简单好用的 Vu ...

随机推荐

  1. c# winform中窗体切换后释放及防止重复生成

    问题1:窗体切换后如何关闭,并释放资? c# winform中,2个窗体,form1和form2,互相切换的时候执行 this.Hide(); Form2 form2 = new Form2(); f ...

  2. JS广度优先遍历

    自己用JS实现了 广度优先遍历 第一种用了数组的高阶函数,看起来有些复杂.然后思索着从可读性上优化了一下,孰优孰劣以后分析. var list = [{ id: "ab", chi ...

  3. 三种远程部署war包检测

    简介 远程部署漏洞属于服务器.中间件配置问题,攻击者可通过远程部署漏洞获取系统权限,远程部署漏洞经常出现在Tomcat.Jboss.Weblogic等web容器之上. 0x01 ### tomcat部 ...

  4. SpringBoot使用谷歌方式生成图片验证码

    1.新建一个springboot的项目 2.导入坐标 <dependency> <groupId>com.github.penggle</groupId> < ...

  5. 顶级c程序员之路 选学篇-1 深入理解字节,字节序与字节对齐

     深入理解字节,字节序与字节对齐 一 总述 作为一个职业的coder玩家,首先应该对计算机的字节有所了解. 我们经常谈到的2进制流,字节(字符)流,数据类型流(针对编程),结构流等说法,2进制流,0和 ...

  6. 如何用css写一个带斜切角、有边框又有内外阴影的按钮呢?

    如果有一天,UI设计师丢过来一张UI稿,上面有这样一个带有斜切角.有边框还有内外阴影的按钮,你会怎么实现呢?第一反应切图?可是按钮内容.大小都是可变的,那得切多少图啊~Canvas?SVG?No,no ...

  7. Spring Boot 老启动失败,这次再也不怕了!

    Spring Boot 项目是不是经常失败,显示一大堆的错误信息,如端口重复绑定时会打印以下异常: *************************** APPLICATION FAILED TO ...

  8. 《C++ Primer》笔记 第1章 开始

    输出运算符<< 的计算结果就是其左侧运算对象 std::endl 结束当前行,并将与设备关联的缓冲区中的内容刷到设备中. 程序员常常在调试时添加打印语句.这类语句应该保证"一直& ...

  9. 使用Spark加载数据到SQL Server列存储表

    原文地址https://devblogs.microsoft.com/azure-sql/partitioning-on-spark-fast-loading-clustered-columnstor ...

  10. [省选联考 2020 A/B 卷] 冰火战士

    一.题目 点此看题 二.解法 其实这道题也不是特别难吧 \(......\) 但树状数组上二分是我第一次见. 我们把冰人和火人都按温度排序,那么考虑一个分界线 \(x\) ,问题就是求冰数组 \(x\ ...