Google Chrome 53 Beta引入影子(Shadow)DOM V1,以及支付請(qǐng)求(PaymentRequest)API。
與之前影子DOM V0明顯不同,V1棄用了影子DOM對(duì)多個(gè)根節(jié)點(diǎn)的支持,并增加了阻止外界訪問(wèn)內(nèi)部的根節(jié)點(diǎn)關(guān)閉功能。
在發(fā)布聲明的博客中,Hayato Ito強(qiáng)調(diào),雖然HTML、CSS、JavaScript非常有用也很強(qiáng)大,但是很難對(duì)大代碼量進(jìn)行維護(hù)。
Ito表示,V1“能讓元素封裝自己的樣式且子DOM不受外界DOM的影響。這提升了大代碼量的可維護(hù)性”。同時(shí)Chrome仍將支持V0。
在HackerNews關(guān)于Google Chrome 53 Beta的討論中,用戶borplk問(wèn)到“影子DOM是否對(duì)React等有影響?如在提升性能等方面”。
Google工程師Eric Bidelman回復(fù)到:
很明顯,影子DOM是一個(gè)瀏覽器內(nèi)嵌的提升開(kāi)發(fā)者效率的工具。
在React中,你需要使用內(nèi)聯(lián)樣式或支持模塊化、增加CSS前綴的構(gòu)建工具(如CSS Modules)。內(nèi)聯(lián)樣式會(huì)將特性配置污染到全局,并且大量?jī)?nèi)聯(lián)樣式會(huì)讓瀏覽器做超出必要的上下文切換(HTML解析器<->CSS解析器)。注意,后者不太會(huì)成為真實(shí)應(yīng)用的性能問(wèn)題。
在影子DOM中,你只需要寫(xiě)CSS。在“