zoukankan      html  css  js  c++  java
  • 模板引擎

    模板引擎基础概念

    模板引擎是第三模块,让开发者以更加友好的方式拼接字符串,使项目代码更加清晰、更加易于维护。

    art-template模板引擎

    1. 使用npm install art-template命令进行下载
    2. 使用const template = require('art-template')引入模板引擎
    3. 告诉模板引擎要拼接的数据和模板在哪const html = template('模板路径',数据)

    示例:

    const template = require("art-template");
    const path = require("path");
    const views = path.join(__dirname, "views", "index.art");
    
    //template方法是用来拼接字符串的
    //1.模板路径  绝对路径
    //2.要在模板中显示的数据 对象类型
    //返回拼接好的字符串
    const html = template(views, {
      name: "张三",
      age: 18,
    });
    console.log(html);
    
    

    index.art文件(html文件)

    <div>
    	名字:{{name}} 
    	年龄:{{age}}
    </div>
    

    模板引擎语法

    输出

    • 标准语法:{{ 数据 }}
    • 原始语法:<%= 数据 %>

    如果数据里带html标签,默认情况下模板引擎是不解析的,会将其转转义后输出,如果确定数据是安全的,可以输出,则使用原文输出

    原文输出

    • 标准语法:{{@ 数据 }}
    • 原始语法:<%- 数据 %>

    条件判断

    <!-- 标准语法 -->
    {{if 条件}} … {{/if}}
    {{if v1}} … {{else if v2}} … {{/if}}
    <!-- 原始语法(代码块) -->
    <% if(value) { %> … <% } %>
    <% if(v1) { %> … <% } else if { %>… <% } %>
    

    循环

    • 标准语法:{{each 数据}} {{/each}}
    • 原始语法:<% for() { %> <% } %>
    <!-- 标准语法 -->
    {{each target}}
    	{{$index}}{{$value}}
    {{/each}}
    <!--原始语法-->
    <% for(var i=0;i<target.length;i++){ %>
    	<%= i %><%= target[i] %>
    <% } %>
    

    子模板

    使用子模板可以将网站公共区块(头部、底部)抽离到单独的文件中

    • 标准语法:{{include '模板'}}
    • 原始语法:<%include('模板') %>
    <!-- 标准语法 -->
    {{include './header.art'}}
    <!-- 原始语法 -->
    <% include('./header.art') %>
    

    模板继承

    使用模板继承可以将网站HTML骨架抽离到单独的文件中,其他页面模板可以继承骨架文件

    示例:

    <!-- layout.art 模板-->
    <!doctype html>
    <html>
    	<head>
    		<meta charset="utf-8">
    		<title>HTML骨架模板</title>
    		{{block 'head'}}{{/block}}
    	</head>
    	<body>
    		{{block 'content'}}{{/block}}
    	</body>
    </html>
    

    使用block挖坑,之后填坑进去

    <!-- index.art 首页模板-->
    {{extend './layout.art'}}
    {{block 'head'}}<link rel="stylesheet" href="main.css">{{/block}}
    {{block 'content'}}<p>你好</p>{{/block}}
    

    使用extend继承骨架模板,之后给block填坑,就可以将内容填充进去了

    模板配置

    1. 一般情况下是不能直接在模板中导入变量,向模板中导入变量要通过 template.defaults.imports.自定义变量名 = 变量值(方法)

      先使用npm install dataformat下载dataformat规定时间格式

      {{ dataFormat ( time , 'yyyy-hh-dd' ) }}

    2. 设置模板根目录 template.defaults.root = 模板目录

      统一设置模板的根目录,之后同一个目录下的文件就不需要拼接,直接写文件全称就行

    3. 设置模板后缀 template.defaults.extname = '.art'

      统一设置模板后缀,和上面的方法一起配置后再省略后缀,直接写文件名即可

  • 相关阅读:
    SQL Server 动态生成分区脚本
    SQL Server数据库服务器高性能设置
    SQL Server 2005 自动化删除表分区设计方案
    SQL Server 自动化管理分区设计方案(图解)
    简单实用SQL脚本Part:sql多行转为一列的合并问题
    简单实用SQL脚本Part9:纵向回填信息
    SQL Server datetime数据类型设计、优化误区
    SQL Server 创建链接服务器
    SQL Server 数据库最小宕机迁移方案
    SQL Server 表分区注意事项
  • 原文地址:https://www.cnblogs.com/actorhuang/p/13780546.html
Copyright © 2011-2022 走看看