Class與Style綁定

  對于數據綁定,一個常見的需求是操作元素的class列表和它的內聯樣式。因為它們都是attribute,我們可以用v-bind處理它們:只需要計算出表達式最終的字符串。不過,字符串拼接麻煩又易錯。因此,在v-bind用于class和style時,Vue.js專門增強了它。表達式的結果類型除了字符串以外,還可以是對象或數組。

一、綁定HTML Class

  1.對象語法

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

<div id="example" class="static" v-bind:class="{'didi-orange':isRipe,'didi-green':isNotRipe}"></div>var vm = new Vue({el:'example',data:{isRipe:true,isNotRipe:false              }  
})

  渲染為:

<div id='example' class='static didi-orange'></div>

  當isRipe和isNotRipe變化時,class列表將相應地更新。例如,如果isNotRipe變為true,那么class列表將變為"static didi-orange didi-green"。(當然,一般情況下,v-bind:class綁定的對象中只有一個class會生效,這取決于用戶自己的設置。)

  注:盡管可以用Mustache標簽綁定class,比如class="{{className}}",但是我們不推薦這種寫法和v-bind:class混用。

  我們也可以直接綁定數據中的一個對象,代碼示例如下:

<div id="example" v-bind:class="ddfe"></div>
var vm = new Vue({el:'example', data:{ddfe:{'didi-orange':'true','didi-green':'false'      }    } 
})    

  還可以在這里綁定一個返回對象的計算屬性。這是一種常用且強大的模式。代碼示例如下:

<div id='example' v-bind:class="ddfe"></div>
var vm = new Vue({el:'example',data:{didiAge:4,didiMember:6000     }computed:{ddfe:function(){return{'didi-orange':this.didiAge>3 ? true:false,'didi-large':this,didiMember>1000? true:false} } }
})        

  2.數組語法

  我們可以把一個數組傳給v-bind:class,以應用一個class列表。代碼示例如下:

<div id='example' v-bind:class="[didiHandsome,didiBeautiful]"></div>
var vm = new Vue({el:'example',data:{didiHandsome:'didi-handsome',didiBeautiful:'didi-beautiful'          }  
})

  渲染為:

<div id="example" class="didi-handsome didi-beautiful"></div>

  如何想根據條件切換列表中的class,則可以用三元表達式。代碼示例如下:

<div id="example" v-bind:class="[didiHandsome,isRipe ? didiOrange: '']"></div>

  此例始終添加didiHandsome,但是只有在isRipe為true時才會添加didiOrange。

  不過,當有多個條件class時這樣寫有些煩瑣。在Vue.js 1.0.19及以后版本中,可以在數組語法中使用對象語法。代碼示例如下:

<div id="example" v-bind:class="[didiHandsome,{didiOrange: isRipe,didiGreen: isNotRipe}]"></div>

二、綁定內聯樣式

  1.對象語法

  v-bind:style的對象語法十分直觀----看著非常像CSS,其實它是一個JavaScript對象。CSS屬性名可以用駝峰式或短橫分隔命名。代碼示例如下:

<div id="example" v-bind:style="{color:didiColor,fontSize:fontSize + 'px'}"></div>
var vm = new Vue({el:'example',data:{didiColor:'orange',fontSize:30  }  
})

  通常直接綁定到一個樣式對象更好,讓模板更清晰。代碼示例如下:

<div id="example" v-bind:style="ddfe"></div>
var vm = new Vue({el:'example', data:{ddfe:{color:orange,fontSize:'13px'}} 
})    

  同樣的,對象語法常常結合返回對象的計算屬性使用。

  2.數組語法

  v-bind:style的數組語法可以將多個樣式對象應用到一個元素上。代碼示例如下:

<div v-bind:style="[ddfe,didiFamily]"></div>

  3.自動添加前綴

  當v-bind:style使用需要廠商前綴的CSS屬性時,如transform,Vue.js會自動偵測并添加相應的前綴。在Vue.js源碼中采用prefix函數來完成這個功能。

?

轉載于:https://www.cnblogs.com/yc-1314/p/10266776.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/280651.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/280651.shtml
英文地址,請注明出處:http://en.pswp.cn/news/280651.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PHP安裝之configure的配置參數

1、生成環境安裝配置如下 要求安裝如下庫&#xff1a; imagickgdmysqlmysqlimysqlndphalconPharsoapsocketsxwebxsvczipzlib 具體查看 vim php-config 就可以知道是如何配置的 --prefix/home/php --with-config-file-path/home/php/etc --with-mysql --with-pdo-oci --with-ope…

Django05: 請求生命周期流程圖/路由層

請求生命周期流程圖 擴展知識&#xff1a; 緩存數據庫 路由層 路由匹配 url(r^test/, views.test), 1. 第一個參數是正則匹配。 只要第一個匹配了&#xff0c;就不會執行下面。 輸入url會默認加斜杠&#xff0c;django會重定向 a. 一次匹配不行 b. url再加斜杠匹配 可以…

facebook 分享頁面_Facebook個人資料,頁面和組之間有什么區別?

facebook 分享頁面Facebook is used by a lot of different people for a lot of different things, so it’s only natural that Facebook would have different sets of features for each of them. There are three main ways you can use Facebook: with a regular Profile…

zabbix運行腳本監控ggsci報錯

/u01/app/oracle/oracle/ogg/ggsci: error while loading shared libraries: libdb-6.1.so: cannot open shared object file: No such file or directory增加腳本環境變量設置PATH$PATH:$HOME/binexport ORACLE_BASE/u01/app/oracleexport ORACLE_HOME$ORACLE_BASE/11/db_1exp…

一句話設計原則

面向對象的可復用設計&#xff08; Object Oriented Design / OOD&#xff09; 1. 開閉原則 (Open Closed Principle) 對擴展開放&#xff0c;對修改關閉 2. 里氏代換原則(LSP) 1.可以使用基類的地方&#xff0c;其子類必然也能使用 2.并且原功能不會受到任何影響 -- 經典案例,…

postman--安裝及Interceptor插件

1. 官網安裝&#xff08;看網速-我下載的時候一直下載失敗&#xff09;打開官網&#xff0c;https://www.getpostman.com選擇ios或者win 2. 非官網安裝 https://pan.baidu.com/s/1mstsimqO3ZC5m9z8czxVnA 密碼&#xff1a;q6yp 安裝postman 3.需要安裝分享的藍燈安裝包&#xf…

亞馬遜標題自動抓取_如何為您的家人提供自動Amazon禮品卡津貼

亞馬遜標題自動抓取When your kids move away to go to school, they’ll probably phone home every once in a while to ask for money. If they shop a lot on Amazon (and they probably do), you can expedite that process by setting up an automatically recurring dep…

Django04-2: ORM關系表\字段補充

一、表與表關系 一對多 多對多 一對一 圖書表 出版社 作者表 作者詳情表 出版社 和 圖書表 關系 一對多 外鍵字段在多的一方 book 圖書表 和 作者表 關系 多對多 需要創建第三張表 作者表 和 作者詳情表 關系 一對一 #創建表關系 先將基表創建 再添加外鍵字段 一對多…

我 與 TDesignBlazor 的故事

前言作者打拼了 .NET 十多年&#xff0c;屬于全棧應用類型的工程師&#xff0c;特別是對于前端的技術情有獨鐘&#xff0c;從純js到jquery&#xff0c;從bootstrap到自己寫css&#xff0c;從web到winform&#xff0c;還寫過一段時間的knockout.js&#xff0c;以至于公司里的前端…

實驗數據

1.整段deng音頻200多秒 2.加xx(1000:1480)之后 轉載于:https://www.cnblogs.com/20179302yzl/p/10270632.html

25個好用的Shell腳本常用命令分享

1.列出所有目錄使用量&#xff0c;并按大小排序。復制代碼 代碼如下:ls|xargs du -h|sort -rn #不遞歸下級目錄使用du -sh2.查看文件排除以#開關和空白行&#xff0c;適合查看配置文件。復制代碼 代碼如下:egrep -v "^#|^$" filenamesed /#.*$/d; /^ *$/d3.刪除空格…

mysql中查詢一個字段屬于哪一個數據庫中的哪一個表的方式

mysql中查詢一個字段具體是屬于哪一個數據庫的那一張表&#xff1a;用這條語句就能查詢出來,其中 table_schema 是所在庫, table_name 是所在表 --mysql中查詢某一個字段名屬于哪一個庫中的哪一張表 select table_schema,table_name from information_schema.columns where col…

macos剪切_如何使用macOS的內置“ Kill and Yank”作為替代剪切和粘貼

macos剪切Everyone knows about cutting and pasting by now. But did you know that your Mac sort of has a second clipboard known as kill and yank? 現在&#xff0c;每個人都知道剪切和粘貼。 但是您是否知道Mac上還有第二個剪貼板&#xff0c;稱為“ kill and yank”&…

ExtJS 折線圖趟過的坑

問題&#xff1a; 1、根據條件檢索后繪制折線圖&#xff0c;之前的坐標沒有清除如圖 解決方案&#xff1a; 在繪制之前&#xff0c;清空坐票&#xff1a; leftLine.surface.removeAll(); leftLine.redraw(false); 完整代碼如下 storeBar.load({params: { SDate: bTime, EDate: …

EventBus的實現

EventBus概要 EventBus是消息傳遞的一種方式&#xff0c;基于一個消息中心&#xff0c;訂閱和發布消息的模式。這種方式的實現不僅僅局限于前端&#xff0c;在iOS中的消息消息中心也是如此實現。 設計模式&#xff1a;訂閱者發布者模式&#xff0c;這種設計模式在前端很常見。A…

Django05-1: 有名分組、無名分組與反向解析

有名、無名分組 分組正則表達式&#xff0c;加小括號 url(r^test/(\d), views.test),def test(request,xx):print(xx)return HttpResponse("OK") 無名分組 將括號正則表達式匹配的內容&#xff0c;當作位置參數傳遞到后面的視圖函數 有名分組 正則表達式起一個別…

Django的第一步(第一節)

寫下你的第一個Django應用第一部分讓我們通過例子來學習.在本教程中&#xff0c;我們將引導您完成基本投票應用程序的創建.其中包括兩部分:一個讓人們查看民意調查并投票的公共網站.允許您添加&#xff0c;更改和刪除民意調查的管理網站.我們假設你django已經安裝好了,你可以通…

ad中電源插座怎么封裝_您可以在房屋中安裝的各種電源插座

ad中電源插座怎么封裝You may already know about smart outlets, or outlets with integrated USB ports. But you might be surprised at how many “normal” outlets you can actually buy for your house. They’re all built for different situations, and you want to …

Arithmetic Slices

這兩天一直復習動態規劃&#xff0c;就想到leetcode上刷刷題&#xff0c;easy難度的很少&#xff0c;大部分都是medium和hard。本題是第一道DP類型medium難度的題目&#xff0c;但是用其他的方法比如暴力法也可以求解。首先來看題目描述&#xff1a; A sequence of number is c…

在Data Lake Analytics中使用視圖

在Data Lake Analytics中使用視圖 1. 概述 在Data Lake Analytics&#xff08;以下簡稱DLA&#xff09;中使用視圖&#xff08;VIEW&#xff09;功能&#xff0c;可以大大簡化對于重復SQL&#xff0c;特別是較為復雜的SQL語句的編寫和維護。目前DLA中還不支持SQL視圖的物化。在…