经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » jQuery » 查看文章
模板引擎
来源:cnblogs  作者:南城北斋  时间:2020/12/8 9:05:14  对本文有异议

这里只引入一种模板引擎的介绍,更多方法可以查询文档

art-Template 模板引擎介绍
简介:

  • artTemplate 是新一代 javascript 模板引擎,它采用预编译方式让性能有了质的飞跃,并且充分利用 javascript 引擎特性,使得其性能无论在前端还是后端都有极其出色的表现。

特性:

  • 拥有接近 JavaScript 渲染极限的的性能
  • 调试友好:语法、运行时错误日志精确到模板所在行;支持在模板文件上打断点(Webpack Loader)
  • 支持 Express、Koa、Webpack
  • 支持模板继承与子模板
  • 浏览器版本仅 6KB 大小

模板:

  • art-template 同时支持两种模板语法。标准语法可以让模板更容易读写;原始语法具有强大的逻辑处理能力。

模板引擎的使用:
1.首先需要引入插件:

2.语法:

  • 输出:
    - 标准语法
  1. {{value}}
  2. {{data.key}}
  3. {{data['key']}}
  4. {{a ? b : c}}
  5. {{a || b}}
  6. {{a + b}}
  1. - 原始语法
  1. <%= value %>
  2. <%= data.key %>
  3. <%= data['key'] %>
  4. <%= a ? b : c %>
  5. <%= a || b %>
  6. <%= a + b %>
  • 条件:
    - 标准语法
  1. {{if value}} ... {{/if}}
  2. {{if v1}} ... {{else if v2}} ... {{/if}}
  1. - 原始语法
  1. <% if (value) { %> ... <% } %>
  2. <% if (v1) { %> ... <% } else if (v2) { %> ... <% } %>
  • 循环:
    - 标准语法
  1. {{each target}}
  2. {{$index}} {{$value}}
  3. {{/each}}
  1. - 原始语法
  1. <% for(var i = 0; i < target.length; i++){ %>
  2. <%= i %> <%= target[i] %>
  3. <% } %>

核心方法:
template(filename, content): 根据模板名渲染模板。返回动态生成的页面结构

案例:使用模板引擎简写语法渲染首页

  1. <html lang="en">
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>Hero - Admin</title>
  5. <link rel="stylesheet" href="./css/bootstrap.css">
  6. <style>
  7. .hero-list img {
  8. width: 50px;
  9. height: 50px;
  10. display: block
  11. }
  12. .hero-list td {
  13. height: 50px;
  14. line-height: 50px;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <header>
  20. <div class="page-header container">
  21. <h1>王者荣耀 <small>英雄管理器</small></h1>
  22. </div>
  23. </header>
  24. <div class="container hero-list">
  25. <table class="table table-hover">
  26. <thead>
  27. <tr>
  28. <th>编号</th>
  29. <th>名称</th>
  30. <th>性别</th>
  31. <th>头像</th>
  32. <th>操作</th>
  33. </tr>
  34. </thead>
  35. <tbody id="tbody">
  36. <tr>
  37. <td>1</td>
  38. <td>jack</td>
  39. <td></td>
  40. <td><img src="http://127.0.0.1:3002/images/1.jpg"></td>
  41. <td><a href="#">查看</a> <a href="javascript:;">修改</a>
  42. <a href="javascript:;">删除</a></td>
  43. </tr>
  44. </tbody>
  45. </table>
  46. </div>
  47. <!-- 下面创建页面动态结构所需要的模板 -->
  48. <!--type属性就是规范了里面的代码以何种语法进行解析 ,script默认的type为text/javascript,script有默认的type,如果设置类型为text/template,那么浏览器知道这不是js,也不会按js语法进行解析,
  49. 同时它还知道这是一个模板结构,所以会按模板结构的语法处理 -->
  50. <script type="text/template" id='listTemp'>
  51. {{each data as value index}}
  52. <tr>
  53. <td>{{i+1}}</td>
  54. <td>{{value.name}}</td>
  55. <td>{{value.gender}}</td>
  56. <td><img src="http://127.0.0.1:3002/images/{{value.img}}"></td>
  57. <td><a href="#">查看</a> <a href="javascript:;">修改</a>
  58. <a href="javascript:;">删除</a></td>
  59. </tr>
  60. {{/each}}
  61. </script>
  62. <!-- 引入jq -->
  63. <script src="./js/jquery.min.js"></script>
  64. <!-- 引入模板引擎 -->
  65. <script src="./js/template-web.js"></script>
  66. <script>
  67. $(function () {
  68. // 页面一加载就发起ajax请求
  69. $.ajax({
  70. type: 'get',
  71. url: 'http://127.0.0.1:3002/getalldata',
  72. dataType: 'json',
  73. success: function (result) {
  74. console.log(result)
  75. if (result.code == 200) {
  76. // 调用模板引擎,生成动态结构
  77. var html = template('listTemp', result)
  78. // 将动态结构填充到页面指定结构
  79. $('#tbody').html(html)
  80. }
  81. }
  82. })
  83. })
  84. </script>
  85. </body>
  86. </html>

原文链接:http://www.cnblogs.com/xjs-hp/p/14044404.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号