首頁 培訓網 最新資訊 熱門問答

游戲開發(fā)

免費試聽 在線客服

您的位置: 南京培訓網 > 游戲開發(fā)培訓資訊 > 南京游戲開發(fā)培訓

南京游戲開發(fā)培訓

來源:教育聯展網 | 發(fā)布時間: | 編輯:佚名

2016年web前端開發(fā)培訓組件化架構分享!我們可以看到,Polymer這個東西在這方面是有先天優(yōu)勢的,因為它的核心理念就是基于Web Components的,也就是說,它基本沒有考慮如何解決當前的問題,直接以未來為發(fā)展方向了。

南京游戲開發(fā)培訓


2016年web前端開發(fā)培訓組件化架構分享!我們可以看到,Polymer這個東西在這方面是有先天優(yōu)勢的,因為它的核心理念就是基于Web Components的,也就是說,它基本沒有考慮如何解決當前的問題,直接以未來為發(fā)展方向了。

        React的編程模式其實不必特別考慮Web標準,它的遷移成本并不算高,甚至由于其實現機制,屏蔽了UI層實現方式,所以大家能看到在native上的使用,canvas上的使用,這都是與基于DOM的編程方式大為不同的,所以對它來說,處理Web Components的兼容問題要在封裝標簽的時候解決,反正之前也是要封裝。

Angular 1.x的版本,可以說是跟同時代的多數框架/庫一樣,對未來標準的兼容基本沒有考慮,但是重新規(guī)劃之后的2.0版本對此有了很多權衡,變成了激進變更,突然就變成一個未來的東西了。

這三個東西各有千秋,在可以預見的幾年內將會鼎足三分,也許還會有新的框架出現,能不能比這幾個流行就難說了。

此外,原Angular 2.0的成員Rob Eisenberg創(chuàng)建了自己的新一代框架aurelia,該框架將成為Angular 2.0強有力的競爭者。

前端組件的復用性

看過了已有的一些東西之后,我們可以大致來討論一下前端組件化的一些理念。假設我們有了某種底層的組件機制,先不管它是瀏覽器原生的,或者是某種框架/庫實現的約定,現在打算用它來做一個大型的Web應用,應該怎么做呢?

所謂組件化,核心意義莫過于提取真正有復用價值的東西。那怎樣的東西有復用價值呢?

控件

基礎邏輯功能

公共樣式

穩(wěn)定的業(yè)務邏輯

對于控件的可復用性,基本上是沒有爭議的,因為這是實實在在的通用功能,并且比較獨立。

基礎邏輯功能主要指的是一些與界面無關的東西,比如underscore這樣的輔助庫,或者一些校驗等等純邏輯功能。

公共樣式的復用性也是比較容易認可的,因此也會有bootstrap,foundation,semantic這些東西的流行,不過它們也不是純粹的樣式庫了,也帶有一些小的邏輯封裝。

**后一塊,也就是業(yè)務邏輯。這一塊的復用是存在很多爭議的,一方面是,很多人不認同業(yè)務邏輯也需要組件化,另一方面,這塊東西究竟怎樣去組件化,也很需要思考。

除了上面列出的這些之外,還有大量的業(yè)務界面,這塊東西很顯然復用價值很低,基本不存在復用性,但仍然有很多方案中把它們“組件化”了,使得它們成為了“不具有復用性的組件”。為什么會出現這種情況呢?

組件化的本質目的并不一定是要為了可復用,而是提升可維護性。這一點正如面向對象語言,Java要比C 純粹,因為它不允許例外情況的出現,連main函數都必須寫到某個類里,所以Java是純面向對象語言,而C 不是。

在我們這種情況下,也可以把組件化分為:全組件化,局部組件化。怎么理解這兩個東西的區(qū)別呢,有人問過js框架和庫的區(qū)別是什么,一般來說,有某種較強約定的東西,稱為框架,而約定比較松散的,稱為庫??蚣芎芏喽际怯腥M件化理念的,比如說,很多年前就出現的ExtJS,它是全組件化框架,而jQuery和它的插件體系,則是局部組件化。所以用ExtJS寫東西,不管寫什么都是差不多一樣的寫法,而用jQuery的時候,大部分地方是原始HTML,哪里需要有些不一樣的東西,就只在那個地方調用插件做一下特殊化。

對于一個有一定規(guī)模的Web應用來說,把所有東西都“組件化”,在管理上會有較大的便利性。我舉個例子,同樣是編寫代碼,短代碼明顯比長代碼的可讀性更高,所以很多語言里會建議“一個方法一般不要超過多少行,一個類**不要超過多少行”之類。在Web前端這個體系里,Java這塊是做得相對較好的,現在入門水平的人,也已經很少會有把一堆js都寫在一起的了。CSS這塊,**近在SASS,LESS等框架的引領下,也逐步往模塊化方面發(fā)展,否則直接編寫bootstrap那種css,會非常痛苦。

這個時候我們再看HTML的部分,如果不考慮模板等技術的使用,某些界面光布局代碼寫起來就非常多了,像一些表單,都需要一層套一層,很多簡單的表單元素都需要套個三層左右,更不必說一些有復雜布局的東西了。尤其是整個系統單頁化之后,界面的header,footer,各種nav或者aside,很可能都有一定復雜性。如果這些東西的代碼不作切分,那么主界面的HTML一定比較難看。

我們先不管用什么方式切分了,比如用某種模板,用類似Angular中的include,或者Polymer,React中的標簽,或者直接使用原生Web Components,總之是把一塊一塊都拆開了,然后包含進來。從這個角度看,這些拆出去的東西都像組件,但如果從復用性的角度看,很可能多數東西,每一塊都只有一個地方用,壓根沒有復用度。這個拆出去,純粹是為了使得整個工程易于管理,易于維護。

這時候我們再來關注不同框架/庫對UI層組件化的處理方式,發(fā)現有兩個類型,模板和函數。

模板是一種很常見的東西,它用HTML字符串的方式表達界面的原始結構,然后**代入數據的方式生成真正的界面,有的是生成目標HTML,有的還生成各種事件的自動綁定。前者是靜態(tài)模板,后者是動態(tài)模板。

另外有一些框架/庫偏愛用函數邏輯來生成界面,早期的ExtJS,現在的React(它內部還是可能使用模板,而且對外提供的是組件創(chuàng)建接口的進一步封裝——jsx)等,這種實現技術的優(yōu)勢是不同平臺上編程體驗一致,甚至可以給每種平臺封裝相同的組件,調用方**寫一份代碼,在Web和不同Native平臺上可用。但這種方式也有比較麻煩的地方,那就是界面調整比較繁瑣。

希望以上對你將要學習HTM5或即將從事HTML5的你有所幫助!

  


咨詢電話【莊老師】:13777371146

了解更多南京游戲開發(fā)培訓>>>>南京游戲開發(fā)課程培訓

了解更多南京培訓網>>>>南京培訓網

熱門機構推薦
游戲開發(fā)

免費體驗課開班倒計時

11: 41: 09

稍后會有專業(yè)老師給您回電,請保持電話暢通

咨詢電話:

本周熱門資訊

全國分站 熱門機構

北京游戲開發(fā)培訓 上海游戲開發(fā)培訓 廣州游戲開發(fā)培訓 深圳游戲開發(fā)培訓 杭州游戲開發(fā)培訓 蘇州游戲開發(fā)培訓 南京游戲開發(fā)培訓 天津游戲開發(fā)培訓 佛山游戲開發(fā)培訓 南寧游戲開發(fā)培訓 長沙游戲開發(fā)培訓 重慶游戲開發(fā)培訓 太原游戲開發(fā)培訓 青島游戲開發(fā)培訓 寧波游戲開發(fā)培訓 鄭州游戲開發(fā)培訓 西安游戲開發(fā)培訓 廈門游戲開發(fā)培訓 武漢游戲開發(fā)培訓 成都游戲開發(fā)培訓 無錫游戲開發(fā)培訓 濟南游戲開發(fā)培訓 昆明游戲開發(fā)培訓 貴陽游戲開發(fā)培訓 揚州游戲開發(fā)培訓 徐州游戲開發(fā)培訓 珠海游戲開發(fā)培訓 合肥游戲開發(fā)培訓 長春游戲開發(fā)培訓

深圳華清遠見教育北京火星時代教育廣州火星時代教育南京火星時代教育

申請試聽名額

已有10254人申請免費試聽

01電話咨詢 |

QQ:
加盟合作:0755-83654572

今日已有25人申請,本月限額500