美文网首页
移动web开发—— 模板引擎详解

移动web开发—— 模板引擎详解

作者: believedream | 来源:发表于2017-02-16 20:12 被阅读0次

    很多人对于 underscore 模板引擎 不是很了解,但是他却十分重要,在许多框架中 ,渲染html 都是以 模板 引擎为基础的。因此在这里分析下模板引擎的原理。

    使用例子说明:

    1.假如我们在body里面写成这个样子:

    <ul id='fruit'>
        <li><%=fruitname%></li>
    </ul>
    

    估计很多人会很疑惑这是啥??,恩恩,其实这个就是相当于一个模板擎,<%=fruitname%>这个东西 就是模板引擎需要解析的 解析成浏览器可以认识的东西。

    2.接下来我们写js

    <script>
            //定义一个水果数组
        var fruit=['西瓜','草莓','蓝莓'];
            //1.获取页面中的节点
        var my=document.querySelector('#fruit')
            //2.得到节点里面的内容
        var f=document.querySelector('#fruit').innerHTML;
        
            //  定义一个解析<%=fruitname%> 模板的函数
        function jeixi(fruit,str){
                //使用正则表达式来解析 模板
             var exp=new RegExp('<%=fruitname%>');
             var li='';
                for(k in fruit){
                    // console.log(k);
                    li+=str;
                    li=li.replace(exp,fruit[k]);
    
               }
           my.innerHTML=li;
        }
         jeixi(fruit,f); //调用函数 解释模板
    
    </script>
    

    代码演示:

    20170216185853.png

    我们发现原本 <li><%=fruitname%></li> 竟然全部渲染成为了 数组的内容。这个就是我们定义函数 jiexi 的功能。 当然 underscroe 模板引擎 不会写的这么简单,我这里只是分析了一下他的原理。 主要运用的就是正则表达式。

    下面贴出完整的代码, 大家可以复制研究(复制可以直接运行)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title>Document</title>
    </head>
    <body>
    <ul id='fruit'>
        <li><%=fruitname%></li>
    </ul>
    </body>
    <script >
        var fruit=['西瓜','草莓','蓝莓'];
    
        var my=document.querySelector('#fruit')
        var f=document.querySelector('#fruit').innerHTML;
        // console.log(f);
        function jeixi(fruit,str){
             var exp=new RegExp('<%=fruitname%>');
             var li='';
                for(k in fruit){
                    // console.log(k);
                    li+=str;
                    li=li.replace(exp,fruit[k]);
    
               }
           my.innerHTML=li;
        }
         jeixi(fruit,f);
    
    </script>
    </html>
    
    

    相关文章

      网友评论

          本文标题:移动web开发—— 模板引擎详解

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