handlebars這個前端模板引擎如何,有類似的模板引擎推薦嗎?
最近在學習js,jquery(剛接觸一些概念,如果用起來給人感覺精神錯亂的話,請義正言辭的指出。。),這個handlebars.js數據模版,感覺好像挺有用的,正準備學習一下,想問下大家有其他哪些好的模板引擎推薦嗎?
對了,還有就是這個東西的原理是不是和React js有什麼相同的?(稍微百度谷歌了一下React js,好像也是說什麼模板,什麼數據傳遞,什麼組塊化什麼的,不專業就看了下大致概念啊不好意思)
1. 跟 React.js 不是一個概念,雖然都提到了模版,React.js 是一個傾向於 view 層的框架,除了提供一個很符合直覺的模版寫法,更多的好處是易於 UI 層的組件抽象,項目偏大時需要較強的能力來規劃邏輯層和數據層
2. handlebars 是個很不錯的模版引擎,功能強大,但是比較重,如果項目頗大,對模版有較強的要求又不想用 ng 等框架的話,可以考慮
handlebars 的特點是兼容 Mustache 語法,多數情況下可以直接遷移,有一個頗有中間件感覺的 helpers 的方法,可以定製很多東西
再就是這貨雖然大,但是奇快無比
個人更偏向用 underscore 或 lodash 的模版,足夠簡單,多數情況下夠用了,需要處理複雜的數據和業務邏輯時就直接上 ng 等框架,也都自帶模版了
拙見
模版就看你的需要了,大同小異,我覺得模版引擎的關鍵是執行速度吧,渲染的效率才是最重要的。不然還不如自己拼個html。。。
對於執行速度,不得不提模板「編譯速度」和「渲染速度」。市面上幾個主流模板都支持將模板預編譯,然後再渲染。 有一篇文章《高性能JavaScript模板引擎原理解析》,說artTemplate的速度達到理論極限,實際說的是渲染速度,它的綜合速度並不快。看下圖的負荷測試結果:
可以看出artTemplate,juicer,doT比其他模板引擎快很多。所以捏,我覺得doT還是挺好的。。哈哈哈哈再貼個綜合性能的比較圖:
其實安全性的xxs防注入也是很重要的指標。題主自己比較下吧。。前端業務強的使用backbone,局部模板替換用mustache即可。
可以下載demo實例看看那個技術更適合你的業務吧。
搜索"backbone"的分享列表搜索"mustache"的分享列表很喜歡這個模板引擎,在移動端、PC端、nodejs項目中都使過這個模板引擎,所以來講一講。
首先是很喜歡它的語法,雙括弧的寫法相對於underscore的&<%更容易維護一些。
其次是功能強大,至少我遇到過的邏輯上的問題都可以解決,還有一些語法糖,方便省事。至於性能,對這方面沒有研究和比較,至少我覺得性能的瓶頸是不會出現在這裡的。關於大小,尤其是移動端,壓縮後的大小也有30K,實在是太大,所以我使用了預編譯的形式,為了方便自己的開發,還寫了一個gulp-handlebars-precompile插件。伺服器端,框架使用的是koa2,配合koa-view,可以實現用handlebars進行渲染。關於與React.js,並不是一個概念上的東西吧,handlebars等模板引擎實現的底層原理還是字元串拼接,配套可以使用jquery,React則是通過虛擬樹與DOM樹的比較,配套使用的則是React相關的全家桶,算是屬於兩個世界的東西。看這裡 模板引擎 - awesomes
最近有在用handlebars,只是感覺自帶的if判斷太弱了。
也可以看看artTemplate.https://github.com/aui/artTemplate跟react不是一個概念 handlebars是和velocity類似的模版渲染引擎 react是一個框架
如果你使用過AngularJs,sodaRender https://github.com/AlloyTeam/SodaRender
贊同@Danilo undersocre或lodash的模板在大多數情況下就夠用了,也可以試下doT.js,速度夠快,庫也夠小
推薦閱讀:
※用 js 和 css3 做動畫時,如何判斷所有的圖片元素都載入完了?
※你是如何打造自己的前端庫(css+js,主要是js了)的?
※如何清除頁面上已有的js?
TAG:網頁設計 | 前端開發 | JavaScript | jQuery | 前端工程師 |