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 |