你在什麼情況下會選擇使用 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框對比, 如下:

這篇文章出來比較早,可以湊合看看, 不要當真。圖靈社區 : 閱讀 : JavaScript寶座:七大框架論劍

「好幾個類庫發展到現在, 已經跟之前完全不一樣了。」

反正我是不會選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 |