成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

給自己挖個坑,開始去開發(fā)javascript富應(yīng)用框架

lidashuang / 2115人閱讀

摘要:是目前項目中正在用的框架?,F(xiàn)在前端這塊再次到了這樣的瓶頸,所以決定自己開始開發(fā)和維護(hù)自己的一個框架。不強(qiáng)制綁定,但是會制定其他規(guī)則來避免用戶手動請求。項目目前完成板塊事件綁定及觸法地址處理以及路由處理。

為什么要框架

隨著電腦運(yùn)算能力的不斷提升,越來越多的網(wǎng)站開始將一些數(shù)據(jù)處理,簡單的業(yè)務(wù)邏輯交予前端。于是前端,特別是所謂的 Webapp 中,出現(xiàn)了大量的數(shù)據(jù)處理以及業(yè)務(wù)邏輯,前端的javascript代碼已經(jīng)不再是簡單的判斷用戶輸入那么簡單。和后端開發(fā)一樣,當(dāng)人們不能容忍php一個頁面里面寫下所有的業(yè)務(wù)邏輯和HTML代碼的時候,他們便會去找一款MVC的框架。前端現(xiàn)在也需要。

我理解的富應(yīng)用有兩個好處,首先會完全將前端和服務(wù)器端的開發(fā)獨立開來,即將服務(wù)器端的V完全交予前端人員開發(fā),于是便可以在前期規(guī)劃完API后進(jìn)行獨立開發(fā)。再者就是用戶體驗,不會出現(xiàn)傳統(tǒng)網(wǎng)頁上面的頁面全局刷新跳轉(zhuǎn)的情況,這樣就更像軟件的體驗(如果需要使用 webkit 打包便可以成為某種意義上的軟件)。

現(xiàn)有的框架

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

BackboneJS 是三個里面唯一一個已經(jīng)認(rèn)真讀完源碼的框架,代碼寫的很不錯,而且這個框架也被國內(nèi)包括豆瓣,百度模仿了。他側(cè)重點是寫了一套不錯的Event的機(jī)制,當(dāng)你定義的Model變化的時候,會觸發(fā)相應(yīng)的事件,問題就是那些"會觸發(fā)的事件“都要你自己去定義,因此你需要手動更新DOM,會去寫很多代碼。

EmberJS 使用的第一感覺就是他的雙向綁定很舒服,不需要再像BackboneJS一樣去手寫很多代碼。但是EmberJS實在是太大了,而且寫代碼前總要不斷去設(shè)計Model,給我自身的感覺就是不夠的自由。而且當(dāng)你的后臺不能滿足 restful 的時候,自己寫請求然后處理的時候,會發(fā)現(xiàn)很麻煩。

AngularJS 是目前項目中正在用的框架。使用的時候感覺很特別,你可以通過directive去定義很多自己的HTML元素屬性。開發(fā)的時候你不需要去過多的關(guān)注Dom如何變化,你只需專注的處理你的數(shù)據(jù)。但是 AngularJS 里面運(yùn)用了太多的新東西,特別是Form處理的時候,數(shù)據(jù)的處理完全依靠HTML5的內(nèi)容。Angularjs 里面大量的用了 ng-xxx 的屬性,在HTML5里面自定義屬性推薦為 data-xx 的格式。還有就是 AngularJS 的速度和性能都不很理想。

以上都是個人觀點,不足以成為大家不去嘗試的理由。當(dāng)然還有一些很不錯的框架,例如 Knockout。

我為什么要挖一個坑

作為一個前端的新人,希望能夠去給自己挖一個持久的坑。在剛剛開始學(xué)編程(剛剛開始是PHP)的時候,一個長輩就和我說我的PHP只是處在入門的級別,想要繼續(xù)提升建議去自己維護(hù)一個框架。但是這個框架一定是要自己持續(xù)在用的,要不然你維護(hù)不好。現(xiàn)在前端這塊再次到了這樣的瓶頸,所以決定自己開始開發(fā)和維護(hù)自己的一個框架。

現(xiàn)有的開源更多是代碼的開源,然后鼓勵大家一起去提供代碼。我想,除了挖一個代碼的坑以外,在這里持續(xù)的更新項目正在寫或者剛剛寫完的模塊的想法。有問題歡迎指出討論,在代碼還在設(shè)計的時候可以得到改正。

我想挖的坑的大概樣子

雙向綁定:雖然有人說這個不太好,但是這個的確可以減少很多代碼。

同時支持占位符和正則的路由。

支持用戶登錄權(quán)限認(rèn)證,相應(yīng)url需要登錄時將會統(tǒng)一跳轉(zhuǎn)。

支持自定義html屬性添加,方便插件模塊化。

promise 風(fēng)格的支持。

簡單的模板語言支持,主要以自定義屬性的形式來處理模板。

Form 表單的統(tǒng)一驗證處理。

不強(qiáng)制綁定restful,但是會制定其他規(guī)則來避免用戶手動請求。

內(nèi)建類似 BackboneJS 的Model,Collection,根據(jù)服務(wù)器返回內(nèi)容自定建立,并綁定到模板。

讓前端工作能夠只需要關(guān)注模板和數(shù)據(jù)管理,其他盡量都自動完成。

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

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

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/77922.html

相關(guān)文章

  • 應(yīng)用中 URL 管理以及 Javascript 測試

    摘要:一個是使用錨鏈接,即的方式實現(xiàn)。做程序的人大多了解測試。傳統(tǒng)的測試方法就是在完成后手動去觸發(fā)事件,然后手動輸入來檢測是否得到預(yù)期的效果。引入了測試框架后工作簡單了很多。前篇傳送門給自己挖個坑,開始去開發(fā)富應(yīng)用框架從的源碼開始說事件模型 URL 存在的意義在于使用者可以使用一段字符串就可以找到對應(yīng)的資源。富應(yīng)用中的內(nèi)容改變都是通過 Javascript 去改變文檔內(nèi)容,某種角度上來說整個...

    kid143 評論0 收藏0
  • 個坑。。用 React 來做個iPhone?

    摘要:三月轉(zhuǎn)眼就過去了。。學(xué)的時候突然想到能不能做個手機(jī),琢磨著鼓搗鼓搗還真鼓搗出了一兩個頁面。。先慢慢做做吧。。爭取月末前能做一兩個上去,然后把攢到的經(jīng)驗好好總結(jié)一下,也希望能得到一些寶貴的建議地址演示地址鎖屏密碼是,截個動圖展示一下 三月轉(zhuǎn)眼就過去了。。一想到月末就能回學(xué)校了心里還是有點小激動的,深感工作之后就沒什么玩的時間了,學(xué)生生涯還剩兩個月,抓緊時間好好享受最后的大學(xué)時光吧。 最近...

    Blackjun 評論0 收藏0
  • 解密 JavaScript 執(zhí)行上下文

    摘要:閉包就好像從中分離出來的一個充滿神秘色彩的未開化世界,只有最勇敢的人才能到達(dá)那里。興奮地趕緊自測咔咔咔連點三下。結(jié)果當(dāng)時內(nèi)心表情大概就像上面這個哥們。但還是在工位上故作鎮(zhèn)定地趕緊百度了下。 ? 閉包就好像從JavaScript中分離出來的一個充滿神秘色彩的未開化世界,只有最勇敢的人才能到達(dá)那里。——《你不知道的JavaScript 上卷》 1、起源 js閉包很長一...

    khlbat 評論0 收藏0
  • JavaScript 私有成員

    摘要:為什么虛函數(shù)中如果在祖先和子孫類中定義了相同的名稱的方法,默認(rèn)會調(diào)用子孫類中的這個方法。然而,這跟私有成員又有什么關(guān)系呢因為私有函數(shù)肯定不是虛函數(shù),所以在中,如果將定義為私有,那調(diào)用的就一定是。虛函數(shù)的概念有點小復(fù)雜。 Class field declarations for JavaScript(JavaScript 類的字段聲明)目前已經(jīng)進(jìn)入了 stage-3,其中包含一項 OOP...

    lakeside 評論0 收藏0
  • 解決多場景/多端的頁面滾動縮放組件-ScrollerJS

    摘要:使用方法首先看一下簡易第一步,實例化滾動對象代碼其實還是蠻簡單的,首先我們初始化一個滾動的實例,構(gòu)造函數(shù)擁有兩個參數(shù),第一個是一個負(fù)責(zé)管理頁面滾動時需要處理事務(wù)的函數(shù),這個函數(shù)接受三個參數(shù),分別表示當(dāng)前頁面左移,向上移,縮放比信息。 ScrollerJS是什么 ScrollerJS是用于純邏輯的滾動縮放組件,它獨立于任何指定的渲染或者事件系統(tǒng)。上面是官方定義的,我再說一下我對這個庫的理...

    fuyi501 評論0 收藏0

發(fā)表評論

0條評論

lidashuang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<