javascript簡單模板引擎介紹
當前網站為了開發效率等因素,通常採用模板的方式。
本章節就通過程式碼例項簡單介紹一下模板的實現原理,當然這裡的模板是非常的簡單的,和jQuery tmpl或者handlebarsjs等相比較不值得一提,但是我們們這裡只是學習實現原理,來開闊一下視野和思路。
一.定義模板:
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> </head> <body> <div class="result"></div> <script type="template" id="template"> <h2> <a href="{{href}}"> {{title}} </a> </h2> <img src="{{imgSrc}}" alt="{{title}}"> </script> </body> </html>
在實際應用中都是要通過ajax等方式從後臺獲取資料,這裡我們為了方便演示,就將資料放在本地:
[JavaScript] 純文字檢視 複製程式碼var data=[ { title:"螞蟻部落一", href:"softwhy.com/a", imgSrc:"image/a.jpg" }, { title:"螞蟻部落二", href:"softwhy.com/b", imgSrc:"image/b.jpg" }, { title:"螞蟻部落三", href:"softwhy.com/c", imgSrc:"image/c.jpg" } ]
我們只要把模板中的相應部分替換為資料就可以了。
[HTML] 純文字檢視 複製程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script type="template" id="template"> <h2> <a href="{{href}}"> {{title}} </a> </h2> <img src="{{imgSrc}}" alt="{{title}}"> </script> </head> <body> <div class="result"></div> <script> var data=[ { title:"螞蟻部落一", href:"softwhy.com/a", imgSrc:"image/a.jpg" }, { title:"螞蟻部落二", href:"softwhy.com/b", imgSrc:"image/b.jpg" }, { title:"螞蟻部落三", href:"softwhy.com/c", imgSrc:"image/c.jpg" } ]; var template=document.querySelector('#template').innerHTML result=document.querySelector('.result'), index=0,len=data.length, fragment=''; for(;index<len;index++){ fragment += template .replace( /\{\{title\}\}/,data[index].title) .replace( /\{\{href\}\}/,data[index].href) .replace( /\{\{imgSrc\}\}/,data[index].imgSrc); } result.innerHTML=fragment; </script> </body> </html>
上面的程式碼實現了一定的替換功能,程式碼有沒有發現有個問題,那就是圖片中的title並沒有被替換到,因為這裡的正規表示式並沒有採用全域性匹配,只要將對應的程式碼修改如下即可:
[JavaScript] 純文字檢視 複製程式碼for(;index<len;index++){ fragment += template .replace( /\{\{title\}\}/g,data[index].title) .replace( /\{\{href\}\}/g,data[index].href) .replace( /\{\{imgSrc\}\}/g,data[index].imgSrc); }
相關文章
- JavaScript 簡單介紹JavaScript
- 簡單介紹克隆 JavaScriptJavaScript
- 簡單介紹JavaScript閉包JavaScript
- 編寫一個簡單的JavaScript模板引擎JavaScript
- JavaScript return語句簡單介紹JavaScript
- JavaScript希爾排序簡單介紹JavaScript排序
- JavaScript 引擎和 Just-in-Time 編譯概念,Hot Function 的簡單介紹JavaScript編譯Function
- SpringBoot模板引擎簡單認知Spring Boot
- 簡單介紹下各種 JavaScript 解析器JavaScript
- EasyTpl - 簡單快速的 PHP 模板引擎PHP
- RPC簡單介紹RPC
- Python簡單介紹Python
- KVM簡單介紹
- RMI簡單介紹
- HTML簡單介紹HTML
- HTML 簡單介紹HTML
- CSS 簡單介紹CSS
- ajax簡單介紹
- SVG簡單介紹SVG
- Clickjacking簡單介紹
- 【Pandas】簡單介紹
- Map簡單介紹
- JSON簡單介紹JSON
- ActiveMQ簡單介紹MQ
- javascript的簡單模板替換JavaScript
- 手擼 JavaScript 模板引擎JavaScript
- Git_簡單介紹Git
- jQuery Validate簡單介紹jQuery
- JSON物件簡單介紹JSON物件
- <svg>元素簡單介紹SVG
- 簡單介紹 ldd 命令
- 禪道簡單介紹
- Webpack 的簡單介紹Web
- Apache Curator簡單介紹Apache
- spark簡單介紹(一)Spark
- Flutter key簡單介紹Flutter
- AOP的簡單介紹
- Ansible(1)- 簡單介紹
- Flownet 介紹 及光流的簡單介紹