給本身挖個坑,開始去開發javascript富應用框架

爲何要框架

隨着電腦運算能力的不斷提高,愈來愈多的網站開始將一些數據處理,簡單的業務邏輯交予前端。因而前端,特別是所謂的 Webapp 中,出現了大量的數據處理以及業務邏輯,前端的javascript代碼已經再也不是簡單的判斷用戶輸入那麼簡單。和後端開發同樣,當人們不能容忍php一個頁面裏面寫下全部的業務邏輯和HTML代碼的時候,他們便會去找一款MVC的框架。前端如今也須要。javascript

我理解的富應用有兩個好處,首先會徹底將前端和服務器端的開發獨立開來,即將服務器端的V徹底交予前端人員開發,因而即可以在前期規劃完API後進行獨立開發。再者就是用戶體驗,不會出現傳統網頁上面的頁面全局刷新跳轉的狀況,這樣就更像軟件的體驗(若是須要使用 webkit 打包即可以成爲某種意義上的軟件)。php

現有的框架

自身接觸過的框架有 BackboneJS,EmberJS,AngularJS,三個都是不錯的框架。html

  • BackboneJS 是三個裏面惟一一個已經認真讀完源碼的框架,代碼寫的很不錯,並且這個框架也被國內包括豆瓣,百度模仿了。他側重點是寫了一套不錯的Event的機制,當你定義的Model變化的時候,會觸發相應的事件,問題就是那些"會觸發的事件「都要你本身去定義,所以你須要手動更新DOM,會去寫不少代碼。前端

  • EmberJS 使用的第一感受就是他的雙向綁定很舒服,不須要再像BackboneJS同樣去手寫不少代碼。可是EmberJS實在是太大了,並且寫代碼前總要不斷去設計Model,給我自身的感受就是不夠的自由。並且當你的後臺不能知足 restful 的時候,本身寫請求而後處理的時候,會發現很麻煩。java

  • AngularJS 是目前項目中正在用的框架。使用的時候感受很特別,你能夠經過directive去定義不少本身的HTML元素屬性。開發的時候你不須要去過多的關注Dom如何變化,你只需專一的處理你的數據。可是 AngularJS 裏面運用了太多的新東西,特別是Form處理的時候,數據的處理徹底依靠HTML5的內容。Angularjs 裏面大量的用了 ng-xxx 的屬性,在HTML5裏面自定義屬性推薦爲 data-xx 的格式。還有就是 AngularJS 的速度和性能都不很理想。git

以上都是我的觀點,不足以成爲你們不去嘗試的理由。固然還有一些很不錯的框架,例如 Knockout。github

我爲何要挖一個坑

做爲一個前端的新人,但願可以去給本身挖一個持久的坑。在剛剛開始學編程(剛剛開始是PHP)的時候,一個長輩就和我說個人PHP只是處在入門的級別,想要繼續提高建議去本身維護一個框架。可是這個框架必定是要本身持續在用的,要否則你維護很差。如今前端這塊再次到了這樣的瓶頸,因此決定本身開始開發和維護本身的一個框架。web

現有的開源更可能是代碼的開源,而後鼓勵你們一塊兒去提供代碼。我想,除了挖一個代碼的坑之外,在這裏持續的更新項目正在寫或者剛剛寫完的模塊的想法。有問題歡迎指出討論,在代碼還在設計的時候能夠獲得改正。編程

我想挖的坑的大概樣子

  • 雙向綁定:雖然有人說這個不太好,可是這個的確能夠減小不少代碼。
  • 同時支持佔位符和正則的路由。
  • 支持用戶登陸權限認證,相應url須要登陸時將會統一跳轉。
  • 支持自定義html屬性添加,方便插件模塊化。
  • promise 風格的支持。
  • 簡單的模板語言支持,主要以自定義屬性的形式來處理模板。
  • Form 表單的統一驗證處理。
  • 不強制綁定restful,可是會制定其餘規則來避免用戶手動請求。
  • 內建相似 BackboneJS 的Model,Collection,根據服務器返回內容自定創建,並綁定到模板。
  • 讓前端工做可以只須要關注模板和數據管理,其餘儘可能都自動完成。

項目目前完成板塊:事件綁定及觸法、地址處理以及路由處理。從此會逐一更新。(截止至2013年9月24日)後端

項目目前地址: https://github.com/HaiyiYun/VintJS

相關文章
相關標籤/搜索