摘要:為嘛會這樣呢,動態添加就不需要手動刷新,而動態設置自定義屬性就需要我猜測可能的原因是如果用戶同時設置多個自定義屬性,比如這樣如果讓自動去刷新視圖可能就要執行次,用戶手動自己在最后一次性刷新的話能提升一定的性能。
一些和自定義css屬性有關的API
上篇中我們介紹了如何自定義css變量,從而在外部定義一些具體的值,由外部component傳入子component后動態的改變,子component的樣式。但是這一切都是聲明式的也就是說在運行前這些樣式就已經決定了,如果你需要在運行時動態的改變一些自定義屬性定義的樣式,那你就要使用一些polymer提供的API了。
customStyle和updateStyles
下面來看一個例子
還是把my-toolbar改回來,不用@mixin 還是用var(--my-toolbar-title-color)
{{title}}
接下去創建一個父component x-custom
來看幾行關鍵代碼
這個style上上一篇的外部定義變量無異,給一個初始的文字顏色red。
這里我們給button添加了一個點擊事件,當用戶點擊button時,執行changeTheme的方法,方法里做了2件事情。
修改customStyle屬性中的變量 --my-toolbar-title-color 為 blue
調用updateStyles()方法來刷新視圖
Run一下,看下效果,初始時文字為red
點擊后,文字變成blue,達到目的
為毛要有這2個API呢,為毛polymer不能自動更新視圖呢。官方給出的解釋是考慮到性能問題。
不過我測試了一下,有一種case是不需要手動updateStyles()的,
比如,下列代碼中,我點擊按鈕動態添加一個class b的dom節點,原本事先在style中定義好的css x-foo.b會立刻生效,并不需要手動刷新。
為嘛會這樣呢,動態添加dom就不需要手動刷新,而動態設置自定義css屬性就需要updateStyles(),我猜測可能的原因是
如果用戶同時設置多個自定義css屬性,比如
this.customStyle["--my-toolbar-title-color"] = "blue"; this.customStyle["--my-toolbar-title-color2"] = "red"; this.customStyle["--my-toolbar-title-color3"] = "green";
這樣如果讓Polymer自動去刷新視圖可能就要執行3次render,用戶手動自己在最后一次性刷新的話能提升一定的性能。
本篇未完待續...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78955.html
摘要:好久沒有更新了,今天更一篇樣式篇。使用的是規則來限定每個自定義組件的樣式范圍即每個組件都可以定義自己內部獨立的樣式,而不受外界全局樣式的干擾?,F在覺得的寫法有些冗長,會在后續版本中加以改進,我們也拭目以待 好久沒有更新了,今天更一篇樣式篇。 Polyermer使用的是Shadow DOM styling規則來限定每個自定義組件的樣式范圍(即每個組件都可以定義自己內部獨立的樣式,而不受外...
摘要:樣式不會被上層的組件介入影響,更不會被內層組件影響。這對保護樣式不受未知的,不可控的外界因素所干擾非常有用。形式上感覺就是這個自定義的變量稱為一個新的屬性,可以被賦值正如我們小標題上的稱呼自定義屬性。 前言 已經好久沒有更新Polymer專欄,之前幾個月由于受到工作上的突然變故,導致學習和撰寫無法順利開展,好在目前各方面都已經暫時穩定下來,期間有不少對Polymer感興趣的壇友通過評論...
摘要:所以又以一個庫的身份出現在世人面前,它現階段要做的就是使用的規范來進行開發,并且提供了一套底層實現來填補了各大瀏覽器暫不支持的,我們稱為填充物也就是要干的事情。 書接上回上一篇我們介紹了神馬是Polymer,這一篇我們來做些正式編碼前的準備工作,順便也扯一扯Polymer的真面目 如何安裝Polymer 有兩種方式:第一種是bower安裝,不要問我bower是什么,不會bower的話,...
摘要:我們修改下例子定義借口,構造時將重新賦值測試一下這種構造函數傳參的方式只適用于,的創建方式,而且它種方式不支持,原因你自己拍腦袋想想就懂了。 之前一篇算是帶大家大致領略了一下Polymer的風采。這篇我們稍微深入一丟丟,講下組件的注冊和創建。 創建自定義組件的幾種方式 這里我們使用Polymer函數注冊了一個自定義組件my-element // register an element ...
摘要:組件也一樣,從被創建,被解析,被賦初始化值,被添加到舞臺,被繪制,被布局,使用過程中被修改了值,被重繪,被重新布局,最終被父組件移除結束慘淡的一身等等,都可以稱為組件的生命周期。 這篇來談談polymer最核心的一塊,也可以說是web components技術最最核心的一塊內容 生命周期,大家在學習一些框架的時候最好都去了解一下它們的生命周期。 什么是生命周期 什么是生命周期?故名思議...
閱讀 1004·2021-11-25 09:43
閱讀 1672·2019-08-30 13:59
閱讀 1589·2019-08-30 11:22
閱讀 2123·2019-08-30 11:06
閱讀 1299·2019-08-28 17:51
閱讀 3717·2019-08-26 12:12
閱讀 778·2019-08-26 12:11
閱讀 443·2019-08-26 12:10