(三十二)模板引擎的簡單實現

2022-09-15 00:54:21 字數 1874 閱讀 6674

var key,options,i = 1; //變數初始的值i從1開始;因為第乙個傳入的是target,從第二個開始遍歷即templatesettings和settings這兩個進行遍歷

if(typeof target !=

'object');

} for(

;i < len;i++)}}

return target;

} //預設配置解析規則

var templatesettings =

var template = function(text,settings)

,templatesettings,settings)

; console.log(settings)

//source是取得對應值之後將正則物件轉化成字串

var matcher = new regexp(

[ settings.interpolate.source,

settings.escape.source,

settings.evalute.source

].join(

'|'),'g'

); //將上面的由正則物件轉換承德字串的陣列組合起來用邏輯或分割;邏輯或代表模式;其中g代表全域性匹配

console.log(

'matcher:'

) console.log(matcher)//模板字串

var index = 0; //切割的起點

var source

; text.replace(matcher,function(match,interpolate,escape,evalute,offset)

else if(escape)

else if(evalute)})

; //模板引擎:依賴於植入字串;通過字串的拼接等方式來實現原本需要用js邏輯來實現的東西

/*** 1、擷取

* 2、拼接

* 3、組織邏輯

* 4、渲染函式處理(解析)

*/var render = new function(

'obj','with(obj){}');

var template = function(data)

return template;//返回template方法

}root.template = template;})

(this)

;github位址

(三十二)模板引擎的簡單實現

var key,options,i 1 變數初始的值i從1開始 因為第乙個傳入的是target,從第二個開始遍歷即templatesettings和settings這兩個進行遍歷 if typeof target object for i len i return target 預設配置解析規則 v...

簡單模板引擎的實現

需求 根據不同狀態 state為1,2,3三種情況 即type 1 type 2 type 3這三種情況,分別將狀態不同時要展示的內容新增到介面上。做這個需求的時候,遇到的問題是,由於用的原生js寫的,所以需要操作dom 因此,我要判斷state,判斷以後,再建立新的節點,再將內容新增到節點,更要命...

PHP原生模板引擎 最簡單的模板引擎

複製 如下 php a array a b c require template demo.php 引用模板 程式設計客棧 模板檔案 複製代gkugmrgq碼 如下 程式設計客棧ype html 模板測試 a 程式設計客棧1 複製 如下 陣列的迭代 smarty 鍵值 對於php程式設計師那個更好理...