摘要:是目前項目中正在用的框架?,F在前端這塊再次到了這樣的瓶頸,所以決定自己開始開發和維護自己的一個框架。不強制綁定,但是會制定其他規則來避免用戶手動請求。項目目前完成板塊事件綁定及觸法地址處理以及路由處理。
為什么要框架
隨著電腦運算能力的不斷提升,越來越多的網站開始將一些數據處理,簡單的業務邏輯交予前端。于是前端,特別是所謂的 Webapp 中,出現了大量的數據處理以及業務邏輯,前端的javascript代碼已經不再是簡單的判斷用戶輸入那么簡單。和后端開發一樣,當人們不能容忍php一個頁面里面寫下所有的業務邏輯和HTML代碼的時候,他們便會去找一款MVC的框架。前端現在也需要。
我理解的富應用有兩個好處,首先會完全將前端和服務器端的開發獨立開來,即將服務器端的V完全交予前端人員開發,于是便可以在前期規劃完API后進行獨立開發。再者就是用戶體驗,不會出現傳統網頁上面的頁面全局刷新跳轉的情況,這樣就更像軟件的體驗(如果需要使用 webkit 打包便可以成為某種意義上的軟件)。
現有的框架自身接觸過的框架有 BackboneJS,EmberJS,AngularJS,三個都是不錯的框架。
BackboneJS 是三個里面唯一一個已經認真讀完源碼的框架,代碼寫的很不錯,而且這個框架也被國內包括豆瓣,百度模仿了。他側重點是寫了一套不錯的Event的機制,當你定義的Model變化的時候,會觸發相應的事件,問題就是那些"會觸發的事件“都要你自己去定義,因此你需要手動更新DOM,會去寫很多代碼。
EmberJS 使用的第一感覺就是他的雙向綁定很舒服,不需要再像BackboneJS一樣去手寫很多代碼。但是EmberJS實在是太大了,而且寫代碼前總要不斷去設計Model,給我自身的感覺就是不夠的自由。而且當你的后臺不能滿足 restful 的時候,自己寫請求然后處理的時候,會發現很麻煩。
AngularJS 是目前項目中正在用的框架。使用的時候感覺很特別,你可以通過directive去定義很多自己的HTML元素屬性。開發的時候你不需要去過多的關注Dom如何變化,你只需專注的處理你的數據。但是 AngularJS 里面運用了太多的新東西,特別是Form處理的時候,數據的處理完全依靠HTML5的內容。Angularjs 里面大量的用了 ng-xxx 的屬性,在HTML5里面自定義屬性推薦為 data-xx 的格式。還有就是 AngularJS 的速度和性能都不很理想。
以上都是個人觀點,不足以成為大家不去嘗試的理由。當然還有一些很不錯的框架,例如 Knockout。
我為什么要挖一個坑作為一個前端的新人,希望能夠去給自己挖一個持久的坑。在剛剛開始學編程(剛剛開始是PHP)的時候,一個長輩就和我說我的PHP只是處在入門的級別,想要繼續提升建議去自己維護一個框架。但是這個框架一定是要自己持續在用的,要不然你維護不好?,F在前端這塊再次到了這樣的瓶頸,所以決定自己開始開發和維護自己的一個框架。
現有的開源更多是代碼的開源,然后鼓勵大家一起去提供代碼。我想,除了挖一個代碼的坑以外,在這里持續的更新項目正在寫或者剛剛寫完的模塊的想法。有問題歡迎指出討論,在代碼還在設計的時候可以得到改正。
我想挖的坑的大概樣子雙向綁定:雖然有人說這個不太好,但是這個的確可以減少很多代碼。
同時支持占位符和正則的路由。
支持用戶登錄權限認證,相應url需要登錄時將會統一跳轉。
支持自定義html屬性添加,方便插件模塊化。
promise 風格的支持。
簡單的模板語言支持,主要以自定義屬性的形式來處理模板。
Form 表單的統一驗證處理。
不強制綁定restful,但是會制定其他規則來避免用戶手動請求。
內建類似 BackboneJS 的Model,Collection,根據服務器返回內容自定建立,并綁定到模板。
讓前端工作能夠只需要關注模板和數據管理,其他盡量都自動完成。
項目目前完成板塊:事件綁定及觸法、地址處理以及路由處理。今后會逐一更新。(截止至2013年9月24日)
項目目前地址: https://github.com/HaiyiYun/VintJS
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77922.html
摘要:一個是使用錨鏈接,即的方式實現。做程序的人大多了解測試。傳統的測試方法就是在完成后手動去觸發事件,然后手動輸入來檢測是否得到預期的效果。引入了測試框架后工作簡單了很多。前篇傳送門給自己挖個坑,開始去開發富應用框架從的源碼開始說事件模型 URL 存在的意義在于使用者可以使用一段字符串就可以找到對應的資源。富應用中的內容改變都是通過 Javascript 去改變文檔內容,某種角度上來說整個...
摘要:三月轉眼就過去了。。學的時候突然想到能不能做個手機,琢磨著鼓搗鼓搗還真鼓搗出了一兩個頁面。。先慢慢做做吧。。爭取月末前能做一兩個上去,然后把攢到的經驗好好總結一下,也希望能得到一些寶貴的建議地址演示地址鎖屏密碼是,截個動圖展示一下 三月轉眼就過去了。。一想到月末就能回學校了心里還是有點小激動的,深感工作之后就沒什么玩的時間了,學生生涯還剩兩個月,抓緊時間好好享受最后的大學時光吧。 最近...
摘要:閉包就好像從中分離出來的一個充滿神秘色彩的未開化世界,只有最勇敢的人才能到達那里。興奮地趕緊自測咔咔咔連點三下。結果當時內心表情大概就像上面這個哥們。但還是在工位上故作鎮定地趕緊百度了下。 ? 閉包就好像從JavaScript中分離出來的一個充滿神秘色彩的未開化世界,只有最勇敢的人才能到達那里。——《你不知道的JavaScript 上卷》 1、起源 js閉包很長一...
摘要:為什么虛函數中如果在祖先和子孫類中定義了相同的名稱的方法,默認會調用子孫類中的這個方法。然而,這跟私有成員又有什么關系呢因為私有函數肯定不是虛函數,所以在中,如果將定義為私有,那調用的就一定是。虛函數的概念有點小復雜。 Class field declarations for JavaScript(JavaScript 類的字段聲明)目前已經進入了 stage-3,其中包含一項 OOP...
摘要:使用方法首先看一下簡易第一步,實例化滾動對象代碼其實還是蠻簡單的,首先我們初始化一個滾動的實例,構造函數擁有兩個參數,第一個是一個負責管理頁面滾動時需要處理事務的函數,這個函數接受三個參數,分別表示當前頁面左移,向上移,縮放比信息。 ScrollerJS是什么 ScrollerJS是用于純邏輯的滾動縮放組件,它獨立于任何指定的渲染或者事件系統。上面是官方定義的,我再說一下我對這個庫的理...
閱讀 2733·2023-04-25 14:15
閱讀 2686·2021-11-04 16:11
閱讀 3385·2021-10-14 09:42
閱讀 434·2019-08-30 15:52
閱讀 2820·2019-08-30 14:03
閱讀 3536·2019-08-30 13:00
閱讀 2105·2019-08-26 11:40
閱讀 3301·2019-08-26 10:25