当前位置:   article > 正文

vue源码之mustache模板引擎1

vue源码之mustache模板引擎1

        模板引擎的一个有点:它是将数据转为视图的最优雅的方法

         对于下面的数据

  1. [
  2. {"name":"小名",'age':"12","sex":'男'},
  3. {"name":"小红",'age':"12","sex":'女'},
  4. {"name":"小王",'age':"12","sex":'男'},
  5. ]

        相信vue的玩家首先想到的是

  1. <ul>
  2. <template v-for="item in data">
  3. <li class="hd">{{ item.name }}的信息</li>
  4. <li class="bd">
  5. <p>姓名{{ item.name }</p>
  6. <p>年龄{{ item.name }}</p>
  7. <p>性别{{ item.name }}</p>
  8. </li>
  9. </template>
  10. </ul>

而还没学vue的朋友,就只能进行dom操作了

像纯DOM

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <ul>
  10. </ul>
  11. <script>
  12. let arr = [
  13. { "name": "小名", 'age': "12", "sex": '男' },
  14. { "name": "小红", 'age': "12", "sex": '女' },
  15. { "name": "小王", 'age': "12", "sex": '男' },
  16. ]
  17. let ul = document.querySelector('ul')
  18. for (const item of arr) {
  19. let li = document.createElement('li')
  20. let div1 = document.createElement('div')
  21. div1.className = 'hd'
  22. let div2 = document.createElement('div')
  23. div2.className = 'bd'
  24. div1.innerHTML = item.name + '的基本信息'
  25. let p1 = document.createElement('p')
  26. let p2 = document.createElement('p')
  27. let p3 = document.createElement('p')
  28. p1.innerHTML = '姓名:' + item.name
  29. p2.innerHTML = '年龄:' + item.age
  30. p3.innerHTML = '性别:' + item.sex
  31. div2.appendChild(p1)
  32. div2.appendChild(p2)
  33. div2.appendChild(p3)
  34. li.appendChild(div1)
  35. li.appendChild(div2)
  36. ul.appendChild(li)
  37. }
  38. </script>
  39. </body>
  40. </html>

        通过数组的join方法

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <ul>
  10. </ul>
  11. <script>
  12. let data = [
  13. { "name": "小名", 'age': "12", "sex": '男' },
  14. { "name": "小红", 'age': "12", "sex": '女' },
  15. { "name": "小王", 'age': "12", "sex": '男' },
  16. ]
  17. let ul = document.querySelector('ul')
  18. for (const item of data) {
  19. let arr = [
  20. '<li>',
  21. ' <div class="hd">'+item.name+'的信息</div>',
  22. ' <div class="bd">',
  23. ' <p>姓名:'+item.name+'</p>',
  24. ' <p>年龄:'+item.age+'</p>',
  25. ' <p>性别:'+item.sex+'</p>',
  26. ' </div>',
  27. '</li>',
  28. ]
  29. let htmlStr = arr.join('')
  30. ul.innerHTML += htmlStr
  31. }
  32. </script>
  33. </body>
  34. </html>

以及es6推出的模板字符串

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <ul>
  10. </ul>
  11. <script>
  12. let ul = document.querySelector('ul')
  13. let data = [
  14. { "name": "小名", 'age': "12", "sex": '男' },
  15. { "name": "小红", 'age': "12", "sex": '女' },
  16. { "name": "小王", 'age': "12", "sex": '男' },
  17. ]
  18. for (const item of data) {
  19. ul.innerHTML += `
  20. <li>
  21. <div class="hd">${item.name}的信息</div>
  22. <div class="bd">
  23. <p>姓名:${item.name}</p>
  24. <p>年龄:${item.age}</p>
  25. <p>性别:${item.sex}</p>
  26. </div>
  27. </li>
  28. `
  29. }
  30. </script>
  31. </body>
  32. </html>

 此为实现的效果

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号