vue源码-mustache模板引擎分析(一)-什么是模板引擎

一.什么是模板引擎?

是将数据变成视图的一种最优雅的方案

二.历史中数据变成视图的方案

1.纯DOM法

<body>
    <div id="list"></div>
    <script type="text/javascript">
        var List = document.getElementById("list");

        var arr = [
            { "name": "小一", "age": 11 },
            { "name": "小二", "age": 12 },
        ]
        for (let i = 0; i < arr.length; i++) {
            let oLi = document.createElement("li")

            let hdDiv = document.createElement("div")
            hdDiv.className = "hd"
            hdDiv.innerText = arr[i].name+'的基本信息'

            let bdDiv = document.createElement("div")
            bdDiv.className = 'hd'

            let p1 = document.createElement("p")
            p1.innerText = '姓名:'+arr[i].name
            bdDiv.appendChild(p1)

            let p2 = document.createElement("p")
            p2.innerText = '年龄:'+arr[i].age
            bdDiv.appendChild(p2)

            
            oLi.appendChild(hdDiv)
            oLi.appendChild(bdDiv)
            
            List.appendChild(oLi)
        }
    </script>
</body>

 特点:实际操作非常麻烦,但在DOM底层实现效率较高


2.数组join法

<body>
    <div id="list"></div>
    <script type="text/javascript">
    // 本质是字符串拼接
        var list = document.getElementById("list");

        var arr = [
            { "name": "小一", "age": 11 },
            { "name": "小二", "age": 12 },
        ]
        for (let i = 0; i < arr.length; i++) {
            list.innerHTML += [
                '<li>',
                    '<div class="hd">'+arr[i].name+'的信息</div>',
                    '<div class="bd">',
                        '<p>姓名:'+arr[i].name+'</p>',
                        '<p>年龄:'+arr[i].age+'</p>',
                    '</div>',
                '</li>',
            ].join('')
        }
    </script>
</body>

特点:实际上是利用了字符串拼接


3.ES6的反引号

<body>
    <div id="list"></div>

    <script type="text/javascript">
        // 本质是字符串
        var list = document.getElementById("list");

        var arr = [
            { "name": "小一", "age": 11 },
            { "name": "小二", "age": 12 },
        ]
        for (let i = 0; i < arr.length; i++) {
            list.innerHTML += [
                `
                <li>
                    <div class="hd">${arr[i].name}的信息</div>
                    <div class="bd">
                        <p>姓名:${arr[i].name}</p>
                        <p>年龄:${arr[i].age}</p>
                    </div>
                </li>
                `
            ].join('')
        }


    </script>
</body>

 特点:利用模板字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值