12. 前端基础--模板引擎art-template

模板引擎art-template

  1. 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
  2. art-template是一个简约、超快的模板引擎。它采用作用域预声明的技术来优化模板渲染速度,从而获得接近 JavaScript 极限的运行性能,并且同时支持 NodeJS 和浏览器。由腾讯公司研发的,市面上有很多类似的模板引擎技术,但是这个应用相对较多。
  3. 优点: 执行效率高,兼容所有浏览器,使用方便。
  4. 有两种语法形式:
    1. 简洁语法结构。 类似 vue, angularjs, freemarker,valocity;
    2. 原生JavaScript语法结构。 类似jsp;
  5. art-template

1. 简洁语法结构

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>简洁语法结构</title>
    <style>
    </style>
    <script src="art-template/template.js"></script>
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>

    <script type="text/javascript">
        $(function () {
            var data = {"name": "喵喵", "age": "17", "hobby": ["哈哈", "嘻嘻", "啦啦"]};
            var str = template("art1", data);
            $("#container").html(str);
        });
    </script>
</head>
<body>
<div id="container"></div>
<script type="text/html" id="art1">
    <h2>{{name}}</h2>
    <h2>{{age}}</h2>
    <ul>
        {{each hobby as value i}}
        <li>{{i+1}}{{value}}</li>
        {{/each}}
    </ul>
</script>
</body>
</html>

2. 原生JS语法结构

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="UTF-8">
    <title>原生js语法结构</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        ul, li {
            list-style: none;
        }
    </style>
    <script src="art-template/template-native.js"></script>
    <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script>

    <script type="text/javascript">
        $(function () {
            var data={"name":"喵喵","age":"17","hobby":["哈哈","嘻嘻","啦啦"]};
            var str = template("art1",data);
            console.log(str);
            $("#container").html(str);
        });
    </script>


</head>
<body>
<div id="container"></div>
<script type="text/html" id="art1">
    <!--template 错误是因为喵喵少了"" 也就是模板错误,检查模板格式  调试代码方法:通过小范围复制源代码来查看代码出错的区域-->
    <% if(name=="喵喵"){ %>
        <h2><%=name%></h2>
        <h2><%=age%></h2>
        <ul>
            <% for(var i=0;i< hobby.length;i++){ %>
            <li><%=i+1%><%=hobby[i]%></li>
            <%}%>
        </ul>
    <%}%>
</script>
</body>
</html>

3. 核心方法

// 基于模板名渲染模板
template(filename, data);

// 将模板源代码编译成函数
template.compile(source, options);

// 将模板源代码编译成函数并立即执行
template.render(source, data, options);
  1. 官方文档:http://aui.github.io/art-template/docs/
  2. 了解一下即可,使用的时候再来学习。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Art-template是一款高性能、轻量级的模板引擎,适用于Node.js和浏览器环境。它以简洁明了的语法,支持模板继承、条件判断、循环遍历等常见功能,同时还提供了强大的过滤器和自定义标签功能。 Art-template的使用逻辑如下: 1. 安装Art-template 可以通过npm安装Art-template,命令如下: ```npm install art-template --save``` 2. 引入Art-template 在Node.js中,可以使用require语句引入Art-template: ```const template = require('art-template');``` 在浏览器中,可以使用script标签引入Art-template: ```<script src="path/to/art-template.js"></script>``` 3. 编写模板 Art-template使用{{}}包裹变量、表达式或语句。例如,以下是一个简单的模板: ``` <!DOCTYPE html> <html> <head> <title>{{title}}</title> </head> <body> <h1>{{title}}</h1> <p>{{content}}</p> </body> </html> ``` 4. 渲染模板 使用template方法可以将模板渲染成字符串。例如: ``` const template = require('art-template'); const data = { title: 'Art-template', content: 'A lightweight and powerful template engine' }; const html = template('path/to/template', data); console.log(html); ``` 在上面的例子中,我们将data对象传递给了模板,使用{{}}包裹的变量会被替换成data对象中的对应值,最终输出渲染后的HTML字符串。 5. 高级用法 除了基本的变量替换,Art-template还支持模板继承、条件判断、循环遍历等高级用法。例如,以下是一个使用if语句和each语句的模板: ``` {{if isAdmin}} <p>Welcome, admin</p> {{else}} <p>Welcome, user</p> {{/if}} <ul> {{each list}} <li>{{$index}}. {{$value}}</li> {{/each}} </ul> ``` 以上就是Art-template的使用逻辑,希望能对你有所帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值