Handlebars 和angularjs有什麼區別?分別在什麼情況下使用?

這兩種框架有什麼區別,百度了很久也沒有有具體的說明


handlebarsjs是模板庫,模板庫的主要作用是:你想要生成某一大片界面,這一片界面有一定規律,比如商品詳情,不同商品之間差的只是名稱,價格,圖片,介紹這些,但是結構一樣的,那我們就可以給他預先寫個界面模板,裡面凡是有可能變的地方,用變數代替,然後每次拿不同的數據代入,生成最終的結果HTML。一般的模板庫都是靜態模板。

angularjs是一種框架,它包含的東西很多,其中,模板這一塊也有類似的東西,但它的界面模板不僅僅是模板本身,還包括一些配置,這些配置能被特定的方式解析,從而與數據層進行動態關聯。所以這是動態模板。

靜態模板跟動態的區別在哪裡呢?舉例來說,如果是只當模板處理的話:

var tpl = "&{{a}}&";

var data = {a:1};

靜態的只會做一次代入,也就是生成之後:

var result = compile(tpl, data);

這個result就只是一個字元串而已了,這個compile裡面也沒有額外的東西生成出來。當result已經被加到界面之後,你的data再怎麼變化,界面也不會變了,除非自己再調用一次compile。

但是動態模板就不同了,compile之後的result加入界面後,當data發生變化,它的界面還會跟著變,所以compile裡面就不只是當字元串處理,而是要當作一個立體結構,跟data建立一種動態關聯,出了compile函數之後,這個結構仍然要存在。

angular裡面對模板的處理大致是這樣的,實際要處理的東西很複雜,有興趣可以了解下。但界面模板只是angular中的一個部分,它是個整體框架,面向的問題領域跟純模板庫是有較大差別的,比如同樣收割麥子,模板庫好比是鐮刀這樣的刀具,而angular這類mv*框架希望提供的是聯合收割機,從收割到脫粒一體化。


百度很久都沒有找到說明?不太可能吧。

Handlebarjs 算不上框架,只是一種js 模板引擎。JS 模板引擎有很多種。

Angularjs 是一種前端MV*框架,內置了自己的模板引擎。


你當然不可能搜索到一條毛巾和一件衣服的對比文章了


拿什麼比喻好呢,車胎跟整車是不一樣的。。。。


悟空,別鬧了,天天黑百度也沒啥意思


推薦閱讀:

react.js,angular.js,vue.js學習哪個好?
請問 React 和 Angular 各有什麼優缺點,各自又適合什麼開發場景?
如何用爬蟲爬取知乎專欄信息?

TAG:JavaScript | MVC | 前端開發框架和庫 | AngularJS | handlebars |