你在什麼情況下會選擇使用 Backbone.js 或 AngularJS?
rt.使用這些MV*框架的優缺點是什麼?
Backbone.js 是最「純粹」的 MVC 框架,毫無冗餘,學習曲線低,架構清晰,易於理解,劣勢在於過於純粹,除了幫助你做架構、給代碼分層外,沒有任何「功能性」的內容,比如常見的 bi-direction binding 等,適用於最簡單的需求場景。比較適合用來學習。
AngularJS 是目前最主流的 MV* 框架,功能強大、完備,適用於大部分的主流需求場景,缺點是學習曲線比較陡,到後期維護、重構、性能優化時初學者或經驗尚淺者會力不從心,需要對前端的架構和主要工程問題有深入理解才能駕馭得了。對於簡單場景適不適合不好說,用不好就是 over design、畫蛇添足。
React.js 算不上框架了,只是一個 View 層解決方案,使用 React.js 的項目中,如何進行代碼的分層依賴開發者自己,而非框架的約定,所以 React.js 最好要搭配 Flux 模型來用。
謝邀。
BackBone屬於第一代MVC框架了, 現在除了歷史項目外還會有人選它么。。。
簡單的一個input框對比, 如下:
「好幾個類庫發展到現在, 已經跟之前完全不一樣了。」
反正我是不會選BackBone了。
現在要選擇也只是:
- vue
- angular
- react
- polymer
- riot (輕量的react-like)
簡單來說,展示型網站用 jQuery,數據操作較多的用 Angular.js 之類。
展示型網站(如個人博客、公司主頁、App 插入頁面等)需要 JS 的地方一般是單個點(如下拉菜單、slider、按鈕相應等),實現的功能一般是事件響應(如點擊、滑鼠滑過、觸摸或手勢等)、DOM 操作(如改變按鈕的文本、改變 div 的 CSS 屬性等)等局部操作。這些操作更加關注 DOM 層面的細節。
數據操作較多的網站(如管理系統、報表、資料庫管理等)需要用 JS 處理很複雜的數據和邏輯(如物品管理的增刪改查操作),而對 DOM 層面的細節不太關注(table 的第四行該顯示哪一個數據?不重要)。這種數據操作的對象是 數據 本身,頁面(DOM)只需要實時(近乎實時)地顯示最新的數據就好了,具體的 DOM 操作、數據顯示和刷新(也就是綁定)讓框架(如 Angular.js)來做就好了。
我目前只用過 Angular.js,功能豐富,能夠滿足一個複雜的管理系統。比起 Backbone.js 我更建議 Angular.js:1. Google 主導的項目,支持力度大,發展迅速;2. 社區和資源更豐富;
3. 2.0 版本會有翻天覆地的改變,更給力了;4. Microsoft 的 TypeScript 以及 ES6/7 的特性都將陸續進入到新版本中。在backbone的官網上遊盪了60分鐘後,果斷的把它加入黑名單了。。。不管他多麼強大,連個像樣的guide都沒有,等於沒法用。。。
只用過angular開發過實際項目,angular的好處其實挺多的1.語義話標籤2.雙向綁定3.很好的分離了dom操作和數據操作。4,學會後更改非angular控制項也很方便。5.開發SPA項目太方便了,CRUD簡簡單單。缺點也有很多.1.學習曲線很陡峭,還有很多暗藏的坑,比如我用route-ui做state跳轉動畫,非要把ng-class由父controller來做。2.貌似angular2.0不兼容以下版本,這對代碼重構是一個挑戰。3.如果用來做多dom操作的項目還是挺麻煩的,老老實實用jquery吧。
如果是移動端肯定選擇backbone.
推薦閱讀:
※shadow dom可以做什麼用?
※現在jQuery不流行了嗎?
※自學前端已經兩個月了,不知道學到什麼程度才能有一份工作!?
※10年網路遊戲前端程序轉型方向何在?
TAG:Web開發 | 前端開發 | JavaScript | Backbonejs | AngularJS |