• 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

      {{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} : {}
    }
    
  • 相关阅读:
    浅谈常量
    运算符
    TTL与CMOS门电路
    16位CRC校验_Delphi
    DXP快捷键记录(红色为经常用到的)
    论EFMS模拟量部分采集电路的修改
    稳压二极管应用电路_转载
    TVS二极管
    TryEnterCriticalSection___Delphi
    很好用的一个翻译插件
  • 原文地址:https://www.cnblogs.com/lovecode3000/p/12323070.html
Copyright © 2020-2023  润新知