12.VUE - v-bind 详解

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

原文地址:https://www.cnblogs.com/shix0909/p/11188263.html

时间: 2024-08-03 13:58:00

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

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

Vue的实例是Vue框架的入口,其实也就是前端的ViewModel,它包含了页面中的业务逻辑处理.数据模型等,当然它也有自己的一系列的生命周期的事件钩子,辅助我们进行对整个Vue实例生成.编译.挂着.销毁等过程进行js控制. 5.1. Vue实例初始化的选项配置对象详解 前面我们已经用了很多次 new Vue({...})的代码,而且Vue初始化的选项都已经用了data.methods.el.computedd等,估计您看到这里时,应该已经都明白了他们的作用,我们就详细讲解一下他们的使用情况.更

vue插件开发流程详解-从开发到发布至npm(一)

vue的插件开发 1.本地开发 1.1 初始化本地开发项目 我们采用vue-cli,初始化一个vue 项目.这个不做详解,请移步到 这里,查看具体详细.初始化后就是这样的项目结构: 其他的文件目录不是本节内容重点,不做详解,请移步这里查看. 1.2 test.js 的内容 ,这是插件的入口文件 关于为什么需要在install这个方法这里添加我们的方法,可以参考官网.https://cn.vuejs.org/v2/guide/plugins.html  这里只是用了其中的一部分的内容. test.

Vue生命周期详解

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } span.s1 { font: 12.0px ".PingFang SC" } 根组件实例:8个 (beforeCreate.created.beforeMount.mounted.beforeUpdate.updated.beforeDestroy.destroyed) p.p1 { mar

boost::bind 详解

使用 boost::bind是标准库函数std::bind1st和std::bind2nd的一种泛化形式.其可以支持函数对象.函数.函数指针.成员函数指针,并且绑定任意参数到某个指定值上或者将输入参数传入任意位置. 1. 通过functions和function pointers使用bind 给定如下函数: 1 int f(int a, int b) 2 { 3 return a + b; 4 } 5 6 int g(int a, int b, int c) 7 { 8 return a + b

DNS及bind详解

三台测试服务器:mail.www.dns mail,192.168.1.29 www , 192.168.1.28 dns , 192.168.1.27 pop --> mail ftp --> www 1.安装bind yum install bind 2.把原配置文件打成bak [[email protected] ~]# mv /etc/named.conf /etc/named.conf.bak 3.重新建主配置文件named.conf [[email protected] ~]# v

bind详解,主从DNS

假如我们希望我们的网站,比如www.lee.com被别人通过域名访问到,那么我们需要向代理商注册---国内有万网,新网,国外有狗爹等,代理商会帮助你向根域注册,如果你的网站访问量很小,代理商会从他们自己公司的服务器里挑一台通过虚拟主机帮你解析(赚你的钱).如果你希望通过自己公司里的DNS服务器去解析,那么需要在代理商提供给我们的主机页面后台修改DNS指向到我们自己的DNS服务器,就是NS记录和A记录.根域告知我们.com的位置(根域服务器通过子域授权认证了.com服务器),我们需要让.com的服

原生JS:Function对象(apply、call、bind)详解

Function对象(apply.call.bind) 本文参考MDN做的详细整理,方便大家参考[MDN](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript) Function 构造器会创建一个新的 Function 对象. 在 JavaScript 中每个函数都是一个Function对象. 构造器 new Function ([arg1[, arg2[, ...argN]],] functionBody) arg1, arg2, .

Vue.js 插件开发详解

前言 随着 Vue.js 越来越火,Vue.js 的相关插件也在不断的被贡献出来,数不胜数.比如官方推荐的 vue-router.vuex 等,都是非常优秀的插件.但是我们更多的人还只停留在使用的阶段,比较少自己开发.所以接下来会通过一个简单的 vue-toast 插件,来了解掌握插件的开发和使用. 原文作者:林鑫,作者博客:https://github.com/lin-xin/blog 认识插件 想要开发插件,先要认识一个插件是什么样子的. Vue.js 的插件应当有一个公开方法 instal

Vue生命周期详解(1)- 单个组件

刚接触vue,使用vue并没意识到生命周期的重要性.直到项目深入,在解决父组件异步加载数据传给子组件并渲染时首次渲染异常的问题时,浪费了很多时间,才发现自己对vue生命周期理解的欠缺.因此,这次专门重新学习一下vue的生命周期并总结在这里分享,希望对大家有所帮助. 首先上官方大图(是不是很高大上?然而,有点晦涩,对初学者不是很友好!) 不过不用担心,咱们程序员不就是实践出真知嘛!上代码: 1 <!DOCTYPE html> 2 <html lang="en">

JDK源码分析(12)之 ConcurrentHashMap 详解

本文将主要讲述 JDK1.8 版本 的 ConcurrentHashMap,其内部结构和很多的哈希优化算法,都是和 JDK1.8 版本的 HashMap是一样的,所以在阅读本文之前,一定要先了解 HashMap,可以参考 HashMap 相关:另外 ConcurrentHashMap 中同样有红黑树,这部分可以先不看不影响整体结构把握,有兴趣的可以查看 红黑树: 一.ConcurrentHashMap 结构概述 1. 整体概述 CHM 的源码有 6k 多行,包含的内容多,精巧,不容易理解:建议在