v-bind动态绑定

v-bind动态绑定

v-bind的基本用法

    <img v-bind:src="vHref" alt="">

动态绑定class(对象语法)

用法一

  • class以对象的形式绑定,当类名为true的时候class存在,为false时不存在
  • 和普通的类同时存在,并不冲突,普通类可以作为必备class存在

    v-bind:class="{类名1:布尔值,类名2:布尔值}"

    <div id='app'>
        <h2 class="default" v-bind:class="{active:isActive,line:isLine}">{{message}}</h2>
    </div>

    <script>
    const app = new Vue({
      el:'#app',
      data:{
        message:'HelloVue',
        isActive:true,
        isLine:true
      }
    })
  </script>

用法二

  • 如果过于复杂,可以通过methods方法来定义class
  • 注意这里的调用方法要加括号()
    <div id='app'>
        <h2 class="default" v-bind:class="getClass()">{{message}}</h2>
    </div>

    <script>
    const app = new Vue({
      el:'#app',
      data:{
        message:'HelloVue',
        isActive:true,
        isLine:true
      },
      methods:{
        getClass:function () {
          return {active:this.isActive,line:this.isLine}
        }
      }
    })
  </script>

动态绑定class(数组语法)

(这种用法比较少,一般用对象语法)

  • 以数组的形式动态绑定class
  • 和对象语法类似,也可以添加普通类

用法一

  • 直接通过vue的data数据传递
    <h2 class="default" :class="[active,line]">{{message}}</h2>

用法二

  • 通过methods返回class,把上面的数组拿到methods中return回去
    <div id='app'>
        <h2 class="default" :class="getClass()">{{message}}</h2>
    </div>

    <script>
    const app = new Vue({
      el:'#app',
      data:{
        message:'HelloVue',
        active:'classA',
        line:'classB'
      },
      methods:{
        getClass:function () {
          return [this.active,this.line];
        }
      }
    })
  </script>

动态绑定style(对象语法)

用法一

  • style用法相当于内联样式
  • 属性名可以加 - 或者用驼峰命名法命名属性
  • 例如font-size || fontSize

    <h2 :style="{key(属性名):value(属性值)}">{{message}}

    <!-- 属性名写死的话要加引号 -->
    <h2 :style="{fontSize:'30px'}">{{message}}</h2>
    <h2 :style="{fontSize:finalNum+'px',backgroundColor:dataColor}">{{message}}</h2>

用法二

  • 用methods方法返回stlye
    <div>
         <h2 :style="getStyles()">{{message}}</h2>
    </div>

     <script>
        const app = new Vue({
          el:'#app',
          data:{
            message:'HelloVue',
            final:'50px',
            finalNum:50,
            dataColor:'red',
          },
          methods:{
            getStyles:function () {
              return {fontSize:this.finalNum+'px',backgroundColor:this.dataColor}
            }
          }
        })
    </script>

动态绑定style(组数语法)

方法

(这种用法比较少,一般用对象语法)

  • 用数组的方式动态绑定style
  <div id="app">
    <h2 :style="[baseStyle,baseStyle1]">{{message}}</h2>
  </div>

  <script>
    const app = new Vue({
      el:'#app',
      data:{
        message:'HelloVue',
        baseStyle:{fontSize:'50px'},
        baseStyle1:{backgroundColor:'red'},
      }
    })
  </script>

v-bind中的驼峰标识

  • 动态绑定属性时尽量字母小写,因为v-bind不支持大写字母。
  • 如果v-bind使用驼峰需要转义,大写字母转小写,并前面加个 - ,其他地方正常使用驼峰即可
  • 但仍不建议中间加-,有可能出现不可预期的错误,最好小写字母
      //这里以props为例
      <cpn :new-message='message'></cpn>
      <template>
          <div>{{newMessage}}</div>
      </template>

动态绑定style高级技巧

动态绑定style不能像绑定class一样做布尔判定,我们可以用三元运算符来动态显示style

//isActive为布尔值,activeColor为属性
activeStyle(){
    return this.isActive ? {color:this.activeColor} : {}
}

原文地址:https://www.cnblogs.com/lovecode3000/p/12323070.html

时间: 2024-10-25 00:57:34

v-bind动态绑定的相关文章

关于jQuery用bind动态绑定事件无效的处理

最近在进行页面开发,在做页面特效的时候,需要给一个动态加载的按钮赋予一个事件 于是不假思索的 用$(obj).bind();  来绑定事件 . 但是这样存在一个问题: bind确实能绑定事件,但是那是相对于固定的html标签来说 当页面内容属于动态加载的时候,bind事件就存在一个bug,  只能bind一次,当你第二次触发事件的时候就没用了 例如: 我给<a>标签赋予一个click , <a>标签包括内容都是从后台数据读取然后动态加载的   .当我使用bind来绑定click事件

v:bind和没有v:bind有什么区别

1. <div id='myid'></div> 会生成id为myid的层. 2. <div :id='myid'></div>这儿的意思是data:{myid:"sth"} 会变成动态赋值的. 原文地址:https://www.cnblogs.com/sexintercourse/p/12293532.html

DNS与BIND学习笔记-基础知识及配置详解

转自 http://blog.chinaunix.net/uid-14825809-id-333591.html 标签:DNS 多线 智能 服务器 bind 一直想系统的学习和了解DNS的原理,包括看相关的rfc文件,一看和dns相关的rfc文件,妈呀,居然有86个之多.能看多少是多少吧.先把DNS的原理研究透彻了.在看rfc文件我想会事半功倍的:) 1. ICANN是干什么的?和他的一些相关资讯? ICANN全称是叫:Internet Corporation for Assigned Name

Catalogue 目录

第二章 态度决定一切 1.做事 2.欲速则不达 3.对事不对人 4.排除万难,奋勇前进 第三章 学无止境 5.跟踪变化 6.对团队投资 7.懂得丢弃 8.打破砂锅问到底 9.把握开发节奏 第四章 交付用户想要的软件 10.让客户做决定 11.让设计指导而不是操纵开发 12.合理地使用技术 13.保持可以发布 14.提早集成,频繁集成 15.提早实现自动化部署 16.使用演示获得频繁反馈 17.固定的价格就意味着背叛承诺 18.使用短迭代,增量发布 第五章 敏捷反馈 19.守护天使 20.先用它再

vue.js功能学习

vue.js是一个MVVM的框架,理解MVVM有利于学习vue.js. MVVM 拆分解释为: Model: 负责数据存储 View: 负责页面展示 View Model: 负责业务逻辑处理(比如Ajax请求等),对数据进行加工后交给视图展示 MVVM 要解决的问题是将业务逻辑代码与视图代码进行完全分离,使各自的职责更加清晰,后期代码维护更加简单 用图解的形式分析 Ajax请求回来数据后直接操作Dom来达到视图的更新的缺点,以及使用MVVM模式是如何来解决这个缺点的 Vue 中的 MVVM vu

vue.js 入门案例

作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 1 vue.js 研究 1.1 vue.js 介绍 1.1.1.vue.js是什么? Vue (读音 /vju?/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计 为可以自底向上逐层应用.Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合.另一方面,当与现代化的工具链以及各种 支持类库结合使用时, Vue 也完全能够为复杂的单页应用提供驱动. 渐进式框架:Progressi

电信网络拓扑图自动布局之曲线布局

在前面<电信网络拓扑图自动布局之总线>一文中,我们重点介绍了自定义 EdgeType 的使用,概括了实现总线效果的设计思路,那么今天话题是基于 HT for Web 的曲线布局(ShapeLayout). ShapeLayout 从字面上的意思理解,就是根据曲线路径来布局节点,省去手动布局节点的繁琐操作,还能保证平滑整齐地排布,这是手动调整很难做到的.ShapeLayout 结合前面提到的总线,是最普遍的应用. http://www.hightopo.com/demo/EdgeType/Sha

通过百度echarts实现数据图表展示功能

现在我们在工作中,在开发中都会或多或少的用到图表统计数据显示给用户.通过图表可以很直观的,直接的将数据呈现出来.这里我就介绍说一下利用百度开源的echarts图表技术实现的具体功能. 1.对于不太理解echarts是个怎样技术的开发者来说,可以到echarts官网进行学习了解,官网有详细的API文档和实例供大家参考学习. 2.以下是我在工作中实现整理出来的实例源码: 公用的支持js文件 echarts.js.echarts.min.js,还有其他的图表需要支持的js文件也可以到官网下载 echa

redis数据库主从复制

redis数据库 一.安装和配置redis 1.安装redis [[email protected] ~]# wget http://download.redis.io/releases/redis-3.2.8.tar.gz [[email protected] ~]# tar -zxvf redis-3.2.8.tar.gz -C /usr/local/src/ [[email protected] ~]# ln -sv /usr/local/src/redis-3.2.8/ /usr/loc

我的liunx开发环境的配置之路

相信有不少人和我一样,虽然是做纯linux开发,但并不排斥windows,并且喜欢在windows下面的使用各种好用的工具来让linux的编程工作变得更加方便.实际上每一个系统都有他的过人支持,windows拥有无数的好用的窗口程序,但windows的命令行工具基本算是退化到了和人类指甲盖的一样的境地. linux正好想法,拥有无所不能的终端和无数的命令,但他的图形界面和用户体验的确还有很长的路要走.至于苹果的mac,我们可以说他即拥有比拟甚至超远(在部分人的眼里)windows的图形界面体验,