首頁 > web前端 > 前端問答 > vue中v-bind有什麼用

vue中v-bind有什麼用

青灯夜游
發布: 2022-12-15 10:24:43
原創
4386 人瀏覽過

在vue中,v-bind指令主要用於屬性綁定,完整語法“v-bind:property="value"”,縮寫語法“:href="value"”;表明將該屬性的屬性值當成一個變量,vue會對它解析,並將解析到的變數賦予data屬性中對應的值。

vue中v-bind有什麼用

本教學操作環境:windows7系統、vue3版,DELL G3電腦。

vue中v-bind介紹

#v-bind 主要用於屬性綁定,比方你的class屬性,style屬性,value屬性,href屬性等等,只要是屬性,就可以用v-bind指令來綁定。

v-bind  主要用於屬性綁定,Vue官方提供了一個簡寫方式:bind,如:

<!-- 完整语法 -->
v-bind:property="value"
//此时 value会被解析成一个变量,若是在vue实例中没有找到,会显示找不到错误


<!-- 缩写 -->
:href="value"
登入後複製

加上v-bind後,就表示將該屬性的屬性值當成一個變數     vue會對它解析,將解析到的變數 賦予data屬性中對應的值。

綁定HTML Class

#一、物件語法:

##我們可以給v- bind:class 一個對象,以動態地切換class。注意:v-bind:class指令可以與普通的class特性共存

HTML程式碼:

<ul class="box" v-bind:class="{‘textColor‘:isColor, ‘textSize‘:isSize}">
    <li>学习Vue</li>
    <li>学习Node</li>
    <li>学习React</li>
</ul>
登入後複製

CSS程式碼:

.box{
    border:1px dashed #f0f;
}
.textColor{
    color:#f00;
    background-color:#eef;
}
.textSize{
    font-size:30px;
    font-weight:bold;
}
登入後複製

JS程式碼:

var vm= new Vue({
    el:‘.box‘,
    data:{
        isColor:true,
        isSize:true
    }
})
登入後複製

vue中v-bind有什麼用

從圖中可以看到,HTML最終渲染為

    當isColor 和isSize 變化時,class清單將會對應的更新,例如,將isSize改成false,class清單將會變成 

      #也可以直接綁定資料裡的物件:

      HTML程式碼:

      <ul class="box" :class="classObject">
          <li>学习Vue</li>
          <li>学习Node</li>
          <li>学习React</li>
      </ul>
      登入後複製

      JS程式碼:

      var vm= new Vue({
          el:‘.box‘,
          data:{
              classObject:{
                  ‘textColor‘:true,
                  ‘textSize‘:false //不渲染,注意看下面的截图
              }
          }
      })
      登入後複製

      vue中v-bind有什麼用

      二、陣列語法

      我們可以把一個陣列傳給v-bind:class,以應用一個class清單

      HTML程式碼:

      <ul class="box" :class="[classA, classB]">
          <li>学习Vue</li>
          <li>学习Node</li>
          <li>学习React</li>
      </ul>
      登入後複製

      JS程式碼:

      var vm= new Vue({
          el:‘.box‘,
          data:{
              classA:‘textColor‘,
              classB:‘textSize‘
          }
      })
      登入後複製

      如果想要根據條件切換清單中的class,可以用三目運算

      HTML程式碼:

      <ul class="box" :class="[isA?classA:‘‘, classB]">
          <li>学习Vue</li>
          <li>学习Node</li>
          <li>学习React</li>
      </ul>
      登入後複製

      JS程式碼:

      var vm= new Vue({
          el:‘.box‘,
          data:{
              classA:‘textColor‘,
              classB:‘textSize‘,
              isA:false 
          }
      })
      登入後複製

      在這個例子中,先判斷isA的boolean值,如果為true,則渲染classA;如果為false,則不渲染。 classB沒有做三目運算,所以是總是顯示的,看看頁面截圖

      vue中v-bind有什麼用

      #對於多個class,可以這麼寫:

      <div v-bind:class="[classA, { classB: isB, classC: isC }]">
      登入後複製

      綁定內聯樣式

      #一、物件語法

      v-bind:style 的對象語法十分直觀--非常像CSS,其實它是一個Javascript對象,

      CSS屬性名必須用駝峰命名法(官方文檔寫的是既可以用駝峰也可以用 短橫分隔命名法),但用短橫分隔是會報錯的

      HTML程式碼:(這裡示範CSS屬性名稱用短橫分隔報錯)

      <div id="box" :style="{color:activeColor, font-size:size}">红嘴绿鹦哥</div>
      登入後複製

      JS程式碼:

      var vm= new Vue({
          el:‘#box‘,
          data:{
              activeColor:‘#f00‘,
              size:‘30px‘,
              shadow:‘5px 2px 6px #000‘
          }
      })
      登入後複製

      頁面報錯:

      vue中v-bind有什麼用

      當我們按照駝峰命名法的規則去寫的時候,一切正常:

      HTML程式碼:

      <div id="box" :  style="max-width:90%">红嘴绿鹦哥</div>
      登入後複製
      登入後複製

      查看頁面效果:

       vue中v-bind有什麼用

      也可以直接綁定到樣式對象,這樣更好,讓模板更清楚:

      HTML程式碼:

      <div id="box" :  style="max-width:90%">红嘴绿鹦哥</div>
      登入後複製
      登入後複製

      JS程式碼:

      var vm= new Vue({
          el:‘#box‘,
          data:{
              styleObject:{
                  color:‘red‘,
                  fontSize:‘30px‘
              }
          }
      })
      登入後複製

      #二、陣列語法

      可將多個樣式物件套用到一個元素上

      HTML程式碼:

      <div class="box" :style="[styleObjectA, styleObjectB]">好好学习,天天向上</div>
      登入後複製

      JS程式碼:

      var vm2= new Vue({
          el:‘.box‘,
          data:{
              styleObjectA:{
                  fontSize:‘36px‘,
                  color:‘blue‘
              },
              styleObjectB:{
                  textDecoration:‘underline‘
              }
          }
      })
      登入後複製

      頁面效果:

       vue中v-bind有什麼用

      ##新增圖片SRC位址

      為img標籤的src屬性賦值時,依照傳統的方法{{url}}:

      HTML程式碼:

      <img  class="box" src="{{url}}"  alt="vue中v-bind有什麼用" >
      登入後複製

      JS代碼:

      var vm= new Vue({
          el:‘.box‘,
          data:{
              url:‘https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1_31bdc76vue中v-bind有什麼用‘
          }
      })
      登入後複製
      此時,圖片可以正常顯示,但是會報一個404錯誤,查看控制台可以看到,Vue更加推薦我們使用

      v-bind:src

       

      #

      使用 v-bind:src 再来试试看

      HTML代码:

      <img  class="box" :src="url"  alt="vue中v-bind有什麼用" >
      登入後複製

      查看页面截图:

      vue中v-bind有什麼用

      【相关推荐:vuejs视频教程web前端开发

      以上是vue中v-bind有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

      相關標籤:
      來源:php.cn
      本網站聲明
      本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
      熱門教學
      更多>
      最新下載
      更多>
      網站特效
      網站源碼
      網站素材
      前端模板