13397158231   jevian_ma@worldflying.cn

高性能模板引擎artemplate的使用

2017-07-19 10:05:00

由于目前主流的开发模型是mvc架构,也就是前端与后端完全分离的开发方式,因此越来越多的开发者采用后端直接发送ajax给前端,让前端自行解析来操作的方式了。

但是由于大家已经渐渐习惯了类似php,jsp这样嵌套html代码的方式,如果全部都通过id获取,在通过innerTHML的方式写入,对于大多数前端工程师来说是个灾难。

因此,js模板引擎在这个大趋势下诞生了。


下面我介绍一下我们公司一直在使用的模板引擎,artemplate。


这个是artemplate在github上的地址https://github.com/aui/art-template


artemplate有两套模板标签,一套是标准语法的模板标签,一套是另一套是原始语法的模板标签。

输出语句:

标准语法

{{value}}
{{data.key}}
{{data['key']}}
{{a ? b : c}}
{{a || b}}
{{a + b}}

原始语法

<%= value %>
<%= data.key %>
<%= data['key'] %>
<%= a ? b : c %>
<%= a || b %>
<%= a + b %>


判断语句:

标准语法

{{if value}} ... {{/if}}
{{if v1}} ... {{else if v2}} ... {{/if}}

原始语法

<% if (value) { %> ... <% } %>
<% if (v1) { %> ... <% } else if (v2) { %> ... <% } %>


循环语句:

标准语法

{{each target}}
    {{$index}} {{$value}}
{{/each}}

原始语法

<% for(var i = 0; i < target.length; i++){ %>
    <%= i %> <%= target[i] %>
<% } %>


变量定义与赋值:

标准语法

{{set temp = data.sub.content}}

原始语法

<% var temp = data.sub.content; %>


一个常用与ajax更新网站的示例:

php代码

<?php
$arr = array (
    'name' => '沃航科技',
    'sex' => '男',
    'age' => '1岁'
);
echo json_encode($arr, JSON_UNESCAPED_UNICODE);
?>

前端代码

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>arttemplate模板引擎</title>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<!-- template-web.js是arttemplate的库 资料查询网站为https://github.com/aui/art-template -->
<script type="text/javascript" src="template-web.js"></script>
<script type="text/javascript">
	window.onload = function() {
		$.post('ajax.php', function(data) {//通过ajax获取数据
			console.log(data);
			var arrs = $.parseJSON(data);//将json转化为js的object对象
			var html = template('tpl', {//生成模板
				target:arrs
			});
			$('body').html(html);//添加到特定元素中去
		});
	}	
</script>
</head>

<body>
<script id="tpl" type="text/html">
姓名:<%= target['name'] %>
性别:<%= target['sex'] %>
年龄:<%= target['age'] %>
</script>
</body>
</html>

优秀产品推荐:可编程网络IO控制器

上一篇:浏览器跳转到新页不记录到history的方法

下一篇:我们该如何看待快手这个APP?

联系我们

  • 地址:武汉市东湖高新开发区光谷总部国际1栋2412室
  • QQ:932773931
  • 电话:027-59761089-806
  • 手机:13397158231
  • 邮箱:jevian_ma@worldflying.cn

关注公众号

扫码添加微信

沃航(武汉)科技有限公司版权所有

备案号:鄂ICP备16014230号-1

本网站由提供CDN加速/云存储服务