PolymerWeb 組件構(gòu)建框架
在2013年的Google I/O大會(huì)上,Google發(fā)布了Polymer,它是一個(gè)使用Web組件構(gòu)建Web應(yīng)用的類庫(kù),同時(shí)也使用了為Web構(gòu)建可重用組件的新的HTML 5標(biāo)準(zhǔn)。Polymer為大部分Web組件技術(shù)提供了polyfills功能,它能讓開(kāi)發(fā)者在所有的瀏覽器支持新特性前創(chuàng)建自己的可重用組件。此外,Polymer提供了一系列的部件的例子,其中包括天氣、時(shí)鐘、股票行情和線型圖。
鑒于許多Web框架通過(guò)暴露JavaScript API來(lái)構(gòu)建用戶界面,而構(gòu)建用戶界面實(shí)際上就是生成一堆div和spans標(biāo)記,Web 組件是原生瀏覽器的解決方案因此不依賴于一個(gè)完整的框架。因此,與現(xiàn)在的一般依賴某個(gè)Javscript框架的HTML組件相比,Web組件希望能減少碎片。
盡管Web組件是一項(xiàng)有趣的新技術(shù),但在瀏覽器們都支持它們(并且大部分用戶都開(kāi)始使用這些瀏覽器們)之前,其中的大部分功能還派不上用場(chǎng)。解決這個(gè)問(wèn)題的一種方法是使用polyfills(譯者注:polyfills原指一種墻面填料)。polyfill指的是一段代碼,它能實(shí)現(xiàn)期望最終由瀏覽器自身實(shí)現(xiàn)的功能。如果瀏覽器本身已經(jīng)實(shí)現(xiàn)了該功能,則polyfill什么都不做。否則,它模擬其實(shí)現(xiàn)而不依賴API。例如,webshims庫(kù)實(shí)現(xiàn)了HTML5中各種功能,包括canvas、HTML5表格和在某些尚不支持地理位置定位的瀏覽器中實(shí)現(xiàn)地理位置定位功能。
Polymer中的polyfills為需要使用Web組件成功構(gòu)建應(yīng)用提供了多種Web技術(shù),包括:
HTML imports:種在其他HTML document中引入和重用HTML document的方法。
自定義元素:讓開(kāi)發(fā)者定義和使用自定義DOM元素。
Shadow DOM:在DOM中提供的封裝。
模型驅(qū)動(dòng)視圖(Model Driven Views):提供象AngularJS的數(shù)據(jù)綁定。
·Web動(dòng)畫:實(shí)現(xiàn)復(fù)雜動(dòng)畫的API。
·Pointer事件:對(duì)鼠標(biāo)觸摸和手寫筆事件的封裝
這些polyfills可以分開(kāi)使用而不需要使用Polymer的其他部分。此外,Polymer提供:
- polymer.js: Polymer的核心運(yùn)行引擎,能輕易創(chuàng)建自定義屬性和事件。
- 一系列可重用的可視和非可視元素。
