詳解js模板引擎art template數(shù)組渲染的方法
JavaScript 模板引擎作為數(shù)據(jù)與界面分離工作中最重要一環(huán),越來(lái)越受開(kāi)發(fā)者關(guān)注,模板引擎種類也是五花八門,我就說(shuō)幾個(gè)安全性高、錯(cuò)誤處理調(diào)試優(yōu),執(zhí)行速度快的有artTemplate(騰訊 14k)、juicer(國(guó)外 12k)這倆個(gè),doT除了錯(cuò)誤處理調(diào)試差以外其他的都和這兩個(gè)一樣,他有一個(gè)優(yōu)點(diǎn)是小(4k),扯遠(yuǎn)啦。
art-template 是一個(gè)簡(jiǎn)約、超快的模板引擎。
什么是art-template
art-template 是一個(gè)簡(jiǎn)約、超快的模板引擎。它采用作用域預(yù)聲明的技術(shù)來(lái)優(yōu)化模板渲染速度,從而獲得接近 JavaScript 極限的運(yùn)行性能,并且同時(shí)支持 NodeJS 和瀏覽器。使用art-template也便于維護(hù)代碼,以前我們渲染數(shù)據(jù)是以模板字符串的形式在js文件中寫入的html內(nèi)容,如果html內(nèi)容需要修改,我們需要在js中修改。而用了模板引擎以后,我們只需要html文件中修改html內(nèi)容。還有使用了模板引擎以后DOM操作的效率也會(huì)更高一點(diǎn)。
它采用作用域預(yù)聲明的技術(shù)來(lái)優(yōu)化模板渲染速度,從而獲得接近 JavaScript 極限的運(yùn)行性能,并且同時(shí)支持 NodeJS 和瀏覽器。在線速度測(cè)試。
art-template特性
- 擁有接近 JavaScript 渲染極限的的性能
- 調(diào)試友好:語(yǔ)法、運(yùn)行時(shí)錯(cuò)誤日志精確到模板所在行;支持在模板文件上打斷點(diǎn)(Webpack Loader)
- 支持 Express、Koa、Webpack
- 支持模板繼承與子模板
- 瀏覽器版本僅 6KB 大小
我們就講一下講簡(jiǎn)潔語(yǔ)法的渲染方式,template(filename, content)根據(jù)模板名渲染模板。前提是你已經(jīng)對(duì)artTemplate有所了解,
今天我們就講一下數(shù)組渲染的方法
數(shù)組渲染有數(shù)組對(duì)象和純數(shù)組兩種形式,我們先說(shuō)數(shù)組對(duì)象,如后端返回我們接口,收到的就是一個(gè)數(shù)組。比如:
const res = [ {"name":"小明", "age":16, "marry":"單身"}, {"name":"小花","age":15, "marry":"有男朋友"}, {"name":"小胖","age":15, "marry":"有女朋友"}, {"name":"小麗","age":15, "marry":"單身"} ];
用artTemplate有個(gè)好處就是除了你的數(shù)據(jù)需要重組,其他的完全可以拿來(lái)直接用。如下
html
<div id="person"></div>
js
<script> const res = [ {"name":"小明", "age":16, "marry":"單身"}, {"name":"小花","age":15, "marry":"有男朋友"}, {"name":"小胖","age":15, "marry":"有女朋友"}, {"name":"小麗","age":15, "marry":"單身"} ]; document.getElementById('person').innerHTML = template('personTemp', {data:res}); // 其實(shí)這里是把數(shù)組轉(zhuǎn)為對(duì)象的形式傳進(jìn)的 </scrtip>
template
<script type="text/html" id="personTemp"> //寫法一 {{each data}} <li>{{$index}}索引 我叫{{$value.name}},今年{{$value.age}}歲,{{$value.marry}}</li> {{/each}} //寫法二 {{each data item index}} <li>{{index}}索引 我叫{{item.name}},今年{{item.age}}歲,{{item.marry}}</li> {{/each}} </script>
下面在看數(shù)組渲染,這是一個(gè)數(shù)組
const res = ['文藝', '博客', '攝影', '電影', '民謠', '旅行', '吉他'];
html
<div id="interest"></div>
js
<script> const res = ['文藝', '博客', '攝影', '電影', '民謠', '旅行', '吉他']; document.getElementById('interest').innerHTML = template('interestTemp', {data:res}); // 其實(shí)這里是把數(shù)組轉(zhuǎn)為對(duì)象的形式傳進(jìn)的 </scrtip>
template
<script type="text/html" id="interestTemp"> //寫法一 {{each data}} <li>{{$index}}索引 我喜歡{{$value.name}}</li> {{/each}} //寫法二 {{each data item index}} <li>{{index}}索引 我喜歡{{item}}</li> {{/each}} </script>
就說(shuō)這么多吧,其實(shí)這種模板用著挺簡(jiǎn)單的很順手。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用wxapp-img-loader自定義組件實(shí)現(xiàn)微信小程序圖片預(yù)加載功能
由于微信小程序沒(méi)有提供類似 Image 這樣的 JS 對(duì)象,要實(shí)現(xiàn)圖片的預(yù)加載要麻煩一些,wxapp-img-loader自定義組件可以在微信小程序中實(shí)現(xiàn)圖片預(yù)加載功能,需要的朋友可以參考下2018-10-10基于JS代碼實(shí)現(xiàn)簡(jiǎn)單易用的倒計(jì)時(shí) x 天 x 時(shí) x 分 x 秒效果
這篇文章主要介紹了基于JS代碼實(shí)現(xiàn)簡(jiǎn)單易用的倒計(jì)時(shí) x 天 x 時(shí) x 分 x 秒效果,需要的朋友可以參考下2017-07-07IE6下通過(guò)a標(biāo)簽點(diǎn)擊切換圖片的問(wèn)題
IE6已經(jīng)讓人惡心很久了, Google旗下Youtube決定在3月13日起停止對(duì)IE6的支持. 但愿能加速IE6更換的速度.2010-11-11JS實(shí)現(xiàn)的手機(jī)端精簡(jiǎn)幻燈片效果
這篇文章主要介紹了JS實(shí)現(xiàn)的手機(jī)端精簡(jiǎn)幻燈片效果,涉及javascript結(jié)合時(shí)間函數(shù)動(dòng)態(tài)修改頁(yè)面元素的相關(guān)技巧,需要的朋友可以參考下2016-09-09微信小程序使用百度AI識(shí)別接口的通用封裝Promise詳解
這篇文章主要介紹了微信小程序使用百度AI識(shí)別接口的通用封裝Promise,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-04-04