前端模板引擎art-template

art-template 是一个简约、超快的模板引擎。它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器。
git源码地址:https://github.com/aui/artTemplate

特性

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

template模板,可以方便、简化我们的前端页面加载。通过动态渲染的方式,为我们的前端界面带来更多简单实际的界面效果和处理方案。

用法示例:

<!-- 1.引入js -->
<script src="../template-web.js"></script> 
<body> 
 <h1>HTML</h1> 
 <div id="content">待模板填充内容(定义id,等待模板翻译后的HTML填充)</div> 
 
 <!--2.写模板-->
 <!-- 定义js模板 开始>>>>>>> -->
 <script id="test_template" type="text/html"> 
 	<span>不转义:{{#value}}</span> 
 	<span>默认转义: {{value}}</span> 
 </script> 
 <!-- 定义js模板 结束<<<<<<< -->
  
 <script> 
	 //3.定义模板数据
	 var templateData= { 
	  value: '<p style="color:red">template</p>' 
	 }; 
	 //4.模板翻译
	 var html = template('test_template', templateData); 
	 //5.写入界面
	 $("#content").append(html);
 </script> 
</body> 

示例解析:

  1. 引入模板的js:template-web.js
  2. 编写模板:
    使用<script id="templateId" type="text/html"> </script>包裹模板内容;
    注意type ="text/html",这样浏览器就会以html方式对模板进行解析;
    内容与一般html写法一致;
    具体要带入的动态参数,使用{{valeName}}方式引用,具体语法下面介绍。
  3. 定义模板数据,与<script></script>上的模板引用参数一致。
  4. 模板翻译为具体html代码:
    调用js的template([templateId], [data])方法,将数据写入,将模板解析为html代码;
    其中:[templateId]是模板的id,如示例中,为:test_template
    [data]为模板引用的动态参数,为自定义内容,如示例中的:templateData
  5. 将4生成的html写入到界面上的具体位置。

以上为一般的模板用法。而实际模板的内容,各式各样,需要我们配合模板的语法,来进行各种定制。

js模板基本语法:

定义模板参数:

var data = {
		name:'tom', 
		age:'37',
		children:[
			{name:'jams', age:'8'}, 
			{name:'lili', age:'6'}
		]
	};

取值:

{{name}}

判断:

{{if age == 37}}
	{{name}}
{{else if age == 38}}
	{{age}}
{{/if}}

列表循环:

{{each children as c index}}
	内置索引:{{index}}
	属性值:{{c.name}}
	属性值:{{c.age}}
{{/each}}

自定义方法:
使用template.helper(name,function)注册方法
在模板中,与其他参数一样,用{{}}调用
示例:

//模板内调用
{{getAge(age)}}

//自定义函数
template.helper("getAge",function(age){
    console.log(age);
});

注意:
需要注意的是,根据界面的渲染顺序,界面元素渲染完成后,才会执行js内容。
所以即使模板是在界面初始化的时候进行加载,也需要在界面元素加载完成后,才会调用到js读取、渲染上。
所以如果模板内调用了一些非原生的前端控件,则需要在模板加载完成后(即在模板写入界面后),主动调用这些控件自己的渲染方式来对他们自己进行渲染。否则模板是不会自动渲染这些控件的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值