欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue中Class和Style實現(xiàn)v-bind綁定的幾種用法

 更新時間:2021年05月17日 10:48:50   作者:JackieDYH  
項目開發(fā)中給元素添加/刪除 class 是非常常見的行為之一, 例如網(wǎng)站導航都會給選中項添加一個 active 類用來區(qū)別選與未選中的樣式,那么在 vue 中 我們如何處理這類的效果呢?下面我們就一起來了解一下

項目開發(fā)中給元素添加/刪除 class 是非常常見的行為之一, 例如網(wǎng)站導航都會給選中項添加一個 active 類用來區(qū)別選與未選中的樣式,除了導航之外其他很多地方也都會用到這種方式處理選中與未選中。

除了設置 class 我們在項目中也經(jīng)常設置元素的內聯(lián)樣式 style,在 jquery 時代我們大多數(shù)都是利用 addClass 與 removeClass 結合使用來處理 class 的添加/刪除,利用 css() 方法設置/獲取元素的內聯(lián)樣式。

那么在 vue 中 我們如何處理這類的效果呢?在 vue 中我們可以利用 v-bind 指令綁定我們的 class 與 style,接下來我們看看 vue 中給我們提供了哪些綁定它們的方式。

對象語法綁定 Class

Tab 頁的切換是我們最常見的一個效果之一,如何讓選中的標題高亮,常用的方式就是動態(tài)切換 class 。 

<div id="app">
    <div class="button-group">
      <button
        v-for="(tab, index) in tabs" 
        v-bind:key="index" 
        v-bind:class="{active: currentTab === tab}" 
        v-on:click="currentTab = tab"
      >{{tab}}</button>
    </div>
    <component v-bind:is="currentTabComponent"></component>
</div>
<script>
Vue.component("tab1", {
    "template": "<p>這里是標簽頁1</p>"
});
Vue.component("tab2", {
  "template": "<p>這里是標簽頁2</p>"
});
Vue.component("tab3", {
  "template": "<p>這里是標簽頁3</p>"
});
var vm = new Vue({
  el: "#app",
  data: {
    currentTab: "tab1",
    tabs: ["tab1", "tab2", "tab3"]
  },
  computed: {
    currentTabComponent() {
      return this.currentTab;
    }
  }
});
</script>

從例子中我們看到 active 這個 class 是否存在取決于后面的表達式是真值或者假值,當為真值時 active 類被添加到元素上否則沒有。

我們不僅可以添加一個 class,我們還可以同時添加多個 class,并且還可以與原有的 class 共存。

<button 
    class="btn"
    v-bind:class="{'btn-primary': isPrimary, active: isActive}"
></button>
<script>
    var vm = new Vue({
      el: "#app",
      data: {
        isPrimary: true,
        isActive: true  
      }
    });
</script>

渲染結果為:

<button class="btn btn-primary active"></button>

我們也可以直接綁定一個數(shù)據(jù)對象

<button class="btn" v-bind:class="activePrimary"></button>
<script>
    var vm = new Vue({
      el: "#app",
      data: {
        activePrimary: {
          'btn-primary': true, 
          active: true
        }
      }
    });
</script>

渲染結果與上面相同

<button class="btn btn-primary active"></button>

除此之外,我們還可以使用計算屬性去綁定元素的 class

<button v-bind:class="activeClass"></button>
<script>
    var vm = new Vue({
      el: "#app",
      data: {
        isActive: true
      },
      computed: {
        activeClass() {
          return {
            active: this.isActive
          }
        }
      }
    });
</script>

數(shù)組語法綁定 Class

Vue 中還支持我們給元素利用數(shù)組的方式添加 class,我們修改上面對象添加 class 的例子。

<button class="btn" v-bind:class="[primary, active]"></button>
<script>
    var vm = new Vue({
      el: "#app",
      data: {
        primary: 'btn-primary',
        active: 'btn-active'  
      }
    });
</script>

上面方式我們綁定了固定不變的,如果我們需要動態(tài)的切換 class 怎么辦呢? 我們可以利用三元表達式或者在數(shù)組中使用對象語法。

//三元表達式
<button v-bind:class="[isActive ? active : '', primary]"></button>
<script>
    var vm = new Vue({
      el: "#app",
      data: {
        isActive: true,
        primary: 'btn-primary',
        active: 'btn-active'  
      }
    });
</script>
 
//數(shù)組中使用對象語法
<button v-bind:class="[{active: isActive}, primary]"></button>
<script>
    var vm = new Vue({
      el: "#app",
      data: {
        isActive: true,
        primary: 'btn-primary'
      }
    });
</script>

對象語法綁定 Style

綁定內聯(lián)樣式時的對象語法,看起來非常像 css,但他其實是一個 Javascript 對象,我們可以使用駝峰式或者短橫線分隔命名。

<div v-bind:style="{color: colorStyle, backgroundColor: background}">
對象語法
</div>
<script>
    var vm = new Vue({
      el: "#app",
      data: {
        colorStyle: 'red',
        background: 'blue'
      }
    });
</script>

與 class 類似我們也可以使用數(shù)據(jù)對象的方式綁定。

<div v-bind:style="style">對象語法</div>
<script>
    var vm = new Vue({
      el: "#app",
      data: {
        style: {
          color: 'red',
          backgroundColor: 'blue'
        }
      }
    });
</script>

數(shù)組語法綁定 Style

Vue 允許我們同時綁定多個樣式對象作用于同一個對象上。

<div v-bind:style="[style, fontStyle]">對象語法</div>
<script>
    var vm = new Vue({
      el: "#app",
      data: {
        style: {
          color: 'red',
          backgroundColor: 'blue'
        },
        fontStyle: {
          fontSize: '18px'
        }
      }
    });
</script>

到此這篇關于Vue中Class和Style實現(xiàn)v-bind綁定的幾種用法的文章就介紹到這了,更多相關Vue v-bind綁定用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 在Vue項目中,防止頁面被縮放和放大示例

    在Vue項目中,防止頁面被縮放和放大示例

    今天小編就為大家分享一篇在Vue項目中,防止頁面被縮放和放大示例,具有很好的參考 價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 詳解解決Vue相同路由參數(shù)不同不會刷新的問題

    詳解解決Vue相同路由參數(shù)不同不會刷新的問題

    這篇文章主要介紹了詳解解決Vue相同路由參數(shù)不同不會刷新的問題,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • Vue.js實戰(zhàn)之組件的進階

    Vue.js實戰(zhàn)之組件的進階

    組件(Component)是 Vue.js 最強大的功能之一,之前的文章都只是用到了基本的封裝功能,這次將介紹一些更強大的擴展。這篇文章主要介紹了Vue.js實戰(zhàn)之組件進階的相關資料,需要的朋友們可以參考借鑒,下面來一起看看吧。
    2017-04-04
  • 在vue項目中使用sass語法問題

    在vue項目中使用sass語法問題

    sass是一個最初由Hampton Catlin設計并由Natalie Weizenbaum開發(fā)的層疊樣式表語言。這篇文章主要介紹了在vue項目中使用sass語法,需要的朋友可以參考下
    2019-07-07
  • vue中使用geobuf的示例詳解

    vue中使用geobuf的示例詳解

    這篇文章主要介紹了vue中使用geobuf的示例詳細,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • vuex如何在非組件中調用mutations方法

    vuex如何在非組件中調用mutations方法

    這篇文章主要介紹了vuex如何在非組件中調用mutations方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Vue標簽屬性動態(tài)傳參并拼接字符串的操作方法

    Vue標簽屬性動態(tài)傳參并拼接字符串的操作方法

    這篇文章主要介紹了Vue標簽屬性動態(tài)傳參并拼接字符串的操作方法,我們需要根據(jù)傳入值的類型,在placeholder屬性賦值"請輸入長度",“請輸入寬度”,"請輸入厚度"等提示字符,本文通過實例代碼介紹的非常詳細,需要的朋友參考下吧
    2023-11-11
  • Vue3中emits與attrs的區(qū)別分析

    Vue3中emits與attrs的區(qū)別分析

    這篇文章主要給大家介紹了關于Vue3中emits與attrs區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用vue具有一定的參考學習價值,需要的朋友可以參考下
    2021-10-10
  • Vue3?全局實例上掛載屬性方法案例講解

    Vue3?全局實例上掛載屬性方法案例講解

    這篇文章主要介紹了Vue3?全局實例上掛載屬性方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • 詳解Vue 全局變量,局部變量

    詳解Vue 全局變量,局部變量

    這篇文章主要介紹了Vue全局變量局部變量,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04

最新評論