談談Google Polymer以及Web UI框架的未來

2020-12-05 CSDN技術社區

雖然今年的Google I/O也已結束,但會上揭曉的新技術、新工具仍然讓開發者興奮不已。其中Web開發方面尤以Ploymer和Web Components為重。

Polymer由加盟Google的原Palm webOS開發團隊打造,是一套以「一切皆組件、最少化代碼量、最少框架限制」為設計理念的Web UI框架。Web Components則提供了一種更徹底的解耦方式,更加方便了UI的開發和模塊化,可以說是Polymer的基礎之一。

開發者Axel Rauschmayer在自己的博客上詳解了Polymer的設計理念與組成架構,深得Polymer開發者sjmiles(Scott J. Miles)的認同。CSDN編譯如下:

在剛剛結束的Google I/O 2013中,Google發布了一個新的Web UI框架——Polymer,似乎為所有Web UI框架指明了發展方向。

1. Polymer

Polymer由以下幾層組成:

  • 基礎層(Foundation)——platform.js:基本構建塊,其中大部分API最終將成為原生瀏覽器API。
  • 核心層(Core)——polymer.js:基礎層實現的輔助工具。
  • 元素層(Elements):包括構建於核心層之上的UI以及非UI組件。

1.1 基礎層(platform.js)

其中,基礎層使用了以下技術:

  1. DOM Mutation Oberservers和 Object.observe():用於監視DOM元素和簡單JavaScript對象的改變。該功能可能會在ECMAScript 7中正式標準化。
  2. Pointer Events :在所有的平臺上以同樣的方式處理滑鼠和觸摸操作。
  3. Shadow DOM:將結構和樣式封裝在元素內(比如定製元素)。
  4. Custom Elements:定義自己的HTML5元素。自定義元素的名字中必須包括一個破折號,它的作用類似於命名空間,為了將其與標準元素區分開來。
  5. HTML Imports:封裝自定義元素,包中包括HTML、CSS、JavaScript元素。
  6. Model-Driven Views(MDV):直接在HTML中實現數據綁定。仍沒有標準化的計劃。
  7. Web Animations:統一Web動畫實現API。

以上第3-5個API都是Web Components的一部分。很明顯,Web Components對Polymer的重要性非同一般。

platform.js的作用在於代替瀏覽器提供這些API,它在經過充分壓縮後僅僅31KB。而根據已公開的信息,我們還知道Polymer的目標之一就在於測試這些未標準化的HTML5 UI API。

1.2 核心層和元素層

Polymer本身非常像原生的HTML5:「attributes in, events out」。以UIwidget(widget)polymer-panels為例:

<polymer-panels on-select="panelSelectHandler" selected="{{selectedPanelIndex}}"></polymer-panels>

可以看出其結構非常「面向組件(component-oriented)」,所有組件都是HTML元素。有的元素本身並不提供UI,比如animations元素並不提供UI,但是你可以將它與UI元素相關聯,實現動畫效果。此外,Polymer的很多widget中都內建了響應式設計,也就是說,他們會依平臺的不同變化成最適合的形狀。

1.3 互操作性

Polymer設計得像菜單一樣,可以按需選擇。得益於Web Components,其元素都具有非常高的互操作性。在I/O大會上我們就看到了這樣的例子:Mozilla項目中的元素X-Tag(同樣基於Web組件)與Polymer協同得非常好。

1.4 什麼時候可以使用Polymer?

Polymer目前仍是一個Alpha預覽版,因此不建議在公共項目中使用。但是,作為一個開源項目,你可以隨時使用它的代碼。

1.5 Polymer與其它Web框架相比如何?

Polymer並不是為終結其它框架而生,相反,現有的這些框架也可以構建在同樣的基礎層之上。如果你已經嘗試過Ember.js、AngularJS這樣的UI框架,一定會發現很多API非常熟悉。AngularJS甚至在 在Twitter上宣布:」Angular將基於Polymer開發widget,這會是一個雙贏的方案。「

2. Polymer究竟意味著什麼?

沒有人會想要使用框架,我們只是想高效地開發Web UI而已,只不過框架恰恰滿足了我們的需求。與之相反,原生HTML卻缺乏這些功能:

  • 豐富的widget集。在我看來,Web Components最大的意義莫過於此。得益於Web Components,我們將能輕易獲得眾多widget,隨意使用。
  • 用戶界面布局。我對 CSS Grid Layout寄予了厚望,Grid Layout是原生的HTML,自然它也能與Web Component很好地協同工作。
  • widget間的「粘合劑」(比如數據綁定)。

就目前看來,各大框架仍難以互相兼容:各自使用各自的工具鏈、繼承API、widget基礎構架等等。本文中描述的開發模式,以及ECMAScript 6中的類與模塊,都指明Web開發的未來應該是更高的互操作性。這對Web開發生態系統的益處顯而易見。

相關資源

如果你想更深入地了解Polymer,可以訪問以下網址:

原文連結: 2ality

本文為CSDN編譯整理,未經允許不得轉載,如需轉載請聯繫market#csdn.net(#換成@)

相關焦點

  • Polymer雖死,Web組件依然前行
    然而,Polymer從未像Angular或React這樣的框架廣泛流行。隨著時間的推移對Polymer感興趣的人越來越少,與此同時,人們對於Web Components的興趣卻逐漸上升。在polymer衰敗的時候,其他Web組件庫應運而生。這個時候有很多框架提供了自己的創建自定義元素的方式。更重要的是,它們的共同點是它們比Polymer輕量級。
  • 17 款常用響應式 web UI 框架 - OSCHINA - 中文開源技術交流社區
    Less Framework Less框架是一個用於設計自適應網站的CSS網格系統,它包含4個布局和3套預設布局,這些都以一個單一網格為基礎。Less框架的目標是更高效地創建多布局網站,並在布局之間保持一致。
  • api框架 web 最好的go_golang api框架 - CSDN
    所謂框架框架一直是敏捷開發中的利器,能讓開發者很快的上手並做出應用,甚至有的時候,脫離了框架,一些開發者都不會寫程序了。成長總不會一蹴而就,從寫出程序獲取成就感,再到精通框架,快速構造應用,當這些方面都得心應手的時候,可以嘗試改造一些框架,或是自己創造一個。
  • Web經典B/S快速開發框架,強大後臺+簡潔UI一體化開發工具
    本框架旨在為.NET開發人員提供一個Web後臺快速開發框架,採用本框架,能夠極大的提高項目開發效率。整個框架包括三個版本:.net,.net core,java(開發中)以上三個版本中,.NET為初始版本,開發時間最長,是目前老客戶使用的主要產品;.net core為.net的升級版本,為新客戶使用及老客戶升級的主要產品;.net core能夠跨平臺,並且涉及Linux、Docker、Nginx、微服務等概念,將是未來的主流。
  • Semantic UI 1.0 發布,前端 UI 框架 - OSCHINA - 中文開源技術...
    Styled accordions are now included as a variationui styled accordionList - List item selectors are now more strict, list items must be immediate children ofui listorui list list
  • Web前端三大主流框架是什麼?
    前端框架對於前端開發的好處是顯而易見的,比如減少代碼中因失誤產生的bug,還能大大節約時間和人力成本,縮短開發周期等等。目前,市面上Web前端三大主流框架分別指的是Angular、React和Vue,在Web前端開發中,它們平分秋色,各有優劣。
  • 3個既簡單又強大的Python Web 框架
    DjangoPython 界最流行的 web 框架。Django是一個高級別的PythonWeb框架,它鼓勵快速開發和乾淨、實用的設計。>Web上一些最繁忙的站點利用Django的快速和靈活擴展能力Flask一個 Python 微型框架
  • Vuetify - 廣受歡迎的 Material Design 風格的開源 UI 框架
    全世界範圍內廣受歡迎的 Vue UI 框架,一個非常精緻的 Material Design UI 套件。Material Design 風格 UI 框架Vuetify 是一個基於 Vue.js 精心打造 UI 組件庫,整套 UI 設計為 Material 風格。
  • UI設計模式大閱兵
    而對於google學術的用戶,高級搜索限定更複雜的搜索條件會提煉出用戶更期望得到的信息。4.過濾數據組(Filter Dataset)參考文獻:《Designing interfaces》和《Designing web interfaces》原文連結:http://www.zhangyq.com/ui-ui-pattern-design-patterns/
  • Material UI 1.0.0 正式發布,Material Design 實現框架
    1.0.0 版本在使用性、定製性和代碼質量規範上做了許多優化,以及:更簡單和更強大的主題網格布局組件新的文檔支持 Right-To-Left 一等的伺服器端支持一等的 TypeScript 支持以及更多…具體的更新內容請查閱發行博客。
  • Addition polymer
    Addition polymer 加成聚合物
  • GOOGLE讓你成為黑客
    google hacking其實並算不上什麼新東西,當時並沒有重視這種技術,認為webshell什麼的,並無太大實際用途.google hacking其實並非如此簡單... google hacking的簡單實現 使用google中的一些語法可以提供給我們更多的信息(當然也提供給那些習慣攻擊的人更多他們所想要的.),下面就來介紹一些常用的語法.
  • 淺談Java Web經典三層架構和MVC框架模式
    ·模型Model:模型代表著一種企業規範,就是業務流程/狀態的處理以及業務規則的規定。業務流程的處理過程對其他層來說是不透明的,模型接受視圖數據的請求,並返回最終的處理結果。業務模型的設計可以說是MVC的核心。
  • Google Earth 谷歌地球app
    (app)由於google退出中國市場,中國大陸無法使用google相關軟體,但是可以通過ourplay框架,來使用Google相關軟體。也可以在框架中使用其他google軟體,請自行發揮。our框架下載網址:ourplay.net/downloadour框架下載網址:cdn.ourplay.net/gsaid/OurPlay-2.7.2.apkGoogle Earth 谷歌地球,通過衛星圖像、整個地球的3D地形圖像以及全球數 百個城市的3D建築圖像,從高空探索整個世界
  • 5分鐘看懂,未來1年的web前端新趨勢,都在這了!
    展望未來的同時,必然是在總結過去的基礎上進行,所以我們現在快速回顧一下:2018年的web前端開發的重要新聞、重要事件和JavaScript的各種流行框架、模式發展趨勢。快速回顧,也就可能有難免的錯誤之處,畢竟只是突出重點,如果不當之處,敬請指正和留言討論。
  • 武漢Python Web全棧開發工程師修煉價格_web前端開發培訓哪家好...
    【課程介紹】課程以python語言為主導,進行web服務相關的全棧開發,包含後端伺服器開發,部署,監控;web前端開發,前後端不分離模板模式開發,前後端分離,單獨前端部署方案。課程涉及到的知識點有:後端:1.flask web框架框架中的 view url template的基礎模塊與功能開發sqlalchemy orm 框架migrate sql遷移框架redis 資料庫sdk(mongodb 資料庫sdk)       跨域解決等2.gunicorn 伺服器部署
  • Semantic UI 0.13.1 發布,前端界面開發框架
    - Fixes modal positioning appearing slightly below center on second loadCheckbox - Fixes checkbox appearance inside inverted formsInput - Fixes ui
  • Web前端和後端有什麼區別(上)
    包括Web頁面的結構、Web的外觀視覺表現以及Web層面的交互實現。 2、Web後端: 後臺更多的是通過與資料庫交互來處理相應的業務邏輯。要考慮的問題有:功能的實現,數據的訪問,平臺的穩定性和性能等等。
  • Sketch or Figma誰才是UI設計軟體的未來?
    而Figma基於web平臺開發,只要你的設備有瀏覽器,並且連接了網際網路,就可以獲得媲美sketch之於mac的極佳體驗,且不受系統約束。流暢的操作體驗雖然Figma基於web開發,其流暢性卻絲毫不遜色於客戶端軟體。
  • Baidu與Google地圖API初探
    前天周六,有個好友過來玩,他說想在他的網站中加入地圖導航模塊,但不知道選擇哪個第三方Map API 在網上查了下Baidu、Google、QQ和MapBar等4種Map API(都是採用JS開放API),也查看了它們的SDK開發文檔,談談自己的體會