美文网首页
js模板引擎的实现

js模板引擎的实现

作者: Jalon | 来源:发表于2016-04-05 17:43 被阅读0次

这里实现一个较传统的模板引擎。
模板引擎的实现原理其实就是拼接字符串,+号拼接速度最快。这里我们采用这种方式实现一个模板引擎。
首先,在js中,声明函数有一种原始的方式,就是

new Function(arg1, arg2..., functionBody)
前面是需要传入的参数,最后则为函数体的内容。
如:
var adder = new Function("a", "b", "return a + b");
adder(2, 6); // 8

但是要注意的是他们都要用字符串方式传入(加引号)。我们恰好可以使用这种方式来实现模板引擎。

new Function(数据名, 拼好的函数体代码)

"use strict";
function render(element, data) {
    var tpl = document.getElementById(element).innerHTML.replace(/[\r\n\t]/g, '');
    var body = "var p=[]; p.push('"
        + tpl
            .replace(/<%=(.*?)%>/g, "');p.push($1);p.push('") // 替换<%= name %>模板数据 先讲数据进行替换
            // 没有=号的是逻辑语句
            .replace(/%>/g, "p.push('") // 无等号尖括号的结束其实正是push该逻辑下的模板的的开始 push(
            .replace(/<%/g, "');") // ) 无等号尖括号的开始其实正是push该逻辑下的模板的结束
        + "'); return p.join('');";

    var exec = new Function('data', body);
    return exec(data)
}

相关文章

  • js模板引擎的实现

    这里实现一个较传统的模板引擎。模板引擎的实现原理其实就是拼接字符串,+号拼接速度最快。这里我们采用这种方式实现一个...

  • Ajax 套用模板实现类瀑布流

    设计的技术: 模板引擎技术 类似JQuery的 Underscore.js 实现思路: 建立一个模板 使用Unde...

  • 模板引擎 easyTpl 的实现

    [TOC] 模板引擎 easyTpl 的实现 概述 项目中经常需要使用js模板去渲染字符串,像 handlebar...

  • 搭建

    利用express-generator来实现项目架构的搭建 设置模板引擎为html修改app.js

  • (笔记)php-smarty模板引擎

    一、模板引擎简介 什么是模板? 所谓模板就是指无PHP代码,只有HTML+CSS+JS。 什么是模板引擎? 模板...

  • Node.js进阶之【12】 : node.js模板引擎:jad

    一、模板引擎简介 node.js里的模板引擎,就是通过【node.js来生成html页面】。不需要通过前台,自已进...

  • epii.js简约而不简单的JS模板引擎

    epii.js是什么 epii.js是一个 模板引擎,可快速实现数据与ui绑定,快速实现事件绑定,与处理,不依赖任...

  • laytpl.js

    laytpllaytpl 是 JavScript 模板引擎,在字符解析上有着比较出色的表现使用js模板引擎的原因能...

  • Jade

    Jade是一款基于html的html模板引擎,采用JavaScript实现,可以方便的在node.js、Yeoma...

  • Enjoy模板引擎原理

    模板引擎是web开发中必不可少的部分,Enjoy模板引擎做为JFinal的默认模板引擎,也可以单独使用。它的实现非...

网友评论

      本文标题:js模板引擎的实现

      本文链接:https://www.haomeiwen.com/subject/kimplttx.html