简单的前端渲染模板实现

这篇博客介绍了如何使用JavaScript实现简单的前端模板渲染。作者首先通过字符串替换的方式解析<%name%>这样的变量,然后讨论了当遇到对象和for循环时如何处理,提出了利用new Function构建函数来编译代码的方法,通过exec()遍历匹配文本,实现模板的动态渲染。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

国庆节过去第一天,有点懒,但一想到今年的法定节假日都已经过完,慢慢就燃起奋斗欲望。今天碰巧看到网络上一些高手博客写着渲染模板教程,就做个随笔记录吧!

渲染模板简单的说,就是将一些数据,字符串加载到几个的变量当中。

var tpl = 'Hei, my name is <%name%>, and I\'m <%age%> years old.';

js数据加载方式

var data = {
    "name": "Barret Lee",
    "age": "20"
};

var result = tplEngine(tpl, data);

以上使用方式,相比大家都很熟悉,目前成熟的渲染模板也有很多,包括一些mvc框架avaron ,angular,vue等都自带前端渲染模板。所以大家也知道模板具有维护方便,代码清晰,版本迭代都很方便。缺点就是seo 等,不过大家做项目时候,关于框架选择,模板选择基本上都是别人搞好,我们都是学着用就可以了。

所以我们就上面代码,做个js编译,我们要把<%name%>识别出来,然后将js数据写进去,所以我们要使用正则表达式。

<div class="name">我的名字叫做<%name%></div>



    <script>
        var name = document.querySelector('.name').innerText;
        //数据源
        var data = {
            "name": "Barret Lee",
            "age": "20"
        };
        //正则获取<%name%>中的name,并用data中的name的值替换
        var result = name.replace(/<%([^%>]+)?%>/g,function(s0,s1){
            return data[s1]
        });
        document.querySelector('.name').innerText = result;
    </script>

上面代码使用正则获取<%name%>变量,然后将data中的name值替换,精简版js模板已经完成。嗯,哪怕这只是简单的字符串替换。

由于时间关系,暂时这样,明天有空继续补上。

------------------------2017-10-10---------------------

继续昨天代码,当对象为对象,字符串替换方式就失灵了,我们换一种方式去探索

<div class="render"><%name%> <%info.age%>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值