从零开始:跟着 Art-template 学习前端模板引擎

news/2025/1/15 21:46:09/

目录

  • Art-template 简介
      • Art-template 的特点和优势
      • 与其他模板引擎的比较
  • 安装和配置 Art-template
      • 使用 npm 安装
      • 通过 CDN 直接引入
      • 在项目中配置和初始化 Art-template
  • 模板语法和基本用法
      • 1. 插值表达式
      • 2. 判断和循环
      • 3. 过滤器
      • 4. 注释和特殊输出
  • 编写模板文件
      • 1. 模板文件的定义和组织方式
      • 2. 嵌套模板和局部模板的使用
      • 3. 引入外部数据和动态生成内容
  • 渲染和数据处理
      • 1. 创建渲染函数并传入数据
      • 2. 渲染结果的获取和输出
      • 3. 注意事项
  • 提高效率的技巧和方法
      • 1.模板的复用和模块化
      • 2. 合理地组织模板文件
      • 3.性能优化

Art-template 简介

Art-template 是一款基于 JavaScript 的快速、简单且功能丰富的模板引擎。

Art-template 的特点和优势

  1. 快速高效:Art-template 采用静态编译和增量渲染的机制,使得在渲染大规模数据时具备出色的性能和较低的内存消耗。
  2. 简单易用:Art-template 使用直观和简洁的语法,容易上手并且适合从零开始学习前端模板引擎。
  3. 条件判断和循环:Art-template 提供了丰富的条件判断和循环语句,使得在模板中可以方便地处理复杂的业务逻辑和数据展示需求。
  4. 动态数据处理:Art-template 支持过滤器(filters)的使用,可以对数据进行格式化、转换和处理,以满足不同的需求。
  5. 模板文件的组织和管理:Art-template 支持模板文件的组织和模块化,可以更好地管理和复用模板代码,提高开发效率。
  6. 完善的文档和社区支持:Art-template 提供了详细的官方文档和示例,以及活跃的社区讨论和贡献,方便用户获取帮助和解决问题。

与其他模板引擎的比较

  1. 性能优势:相比于一些其他常见的模板引擎,Art-template 在性能上表现出色,尤其在处理大规模数据和复杂渲染任务时更为高效。
  2. 简洁易用:Art-template 的语法设计简单明了,易于学习和使用,尤其适合新手开发者入门。
  3. 依赖关系:Art-template 不依赖于其他 JavaScript 库或框架,可以独立使用,也可与各种前端框架(如 Vue、React)集成使用。
  4. 功能丰富:Art-template 提供了丰富的功能和特性,包括条件判断、循环、过滤器等,满足各类数据展示和业务逻辑的需求。

安装和配置 Art-template

使用 npm 安装

  1. 打开命令行终端,进入你的项目所在的目录。
  2. 运行以下命令以在你的项目中安装 Art-template:
    npm install art-template
    
  3. 安装完成后,可以在项目的代码中使用类似 requireimport 的方式引入 Art-template 模块,例如:
    const template = require('art-template');
    

通过 CDN 直接引入

  1. 在 HTML 文件中的 <script> 标签中添加 Art-template 的 CDN 链接。这样浏览器会自动下载并加载 Art-template。
    <script src="https://cdn.jsdelivr.net/npm/art-template@4.13.2/dist/template-web.js"></script>
    
  2. 一旦引入了 Art-template,就可以在 JavaScript 代码中使用全局变量 template 来访问 Art-template 的功能。

在项目中配置和初始化 Art-template

  1. 如果使用 npm 安装,可以在 JavaScript 代码中进行配置和初始化。通过 template.defaults 对象可以设置 Art-template 的全局配置选项,例如模板标签的起止字符、是否缓存编译后的模板等。示例代码如下:

    template.defaults.delimiters = ['{{', '}}']; // 设置模板标签的起止字符
    template.defaults.cache = false; // 禁用模板缓存
    
  2. 如果通过 CDN 引入 Art-template,无需进行额外的配置和初始化步骤。直接在 JavaScript 代码中使用 template 全局变量即可。

模板语法和基本用法

1. 插值表达式

使用双大括号 {{ }} 在模板中插入动态数据。例如:<p>{{name}}</p>

2. 判断和循环

使用 {{ if }}{{ each } 标签来实现条件判断和循环语句。例如:

{{if score >= 60 }}<p>及格</p>
{{else}}<p>不及格</p>
{{/if}}{{each list as item}}<li>{{item}}</li>
{{/each}}

3. 过滤器

使用管道符 | 加上过滤器名称来处理并格式化数据。例如:{{time | formatTime}}

4. 注释和特殊输出

使用 {{! }} 来注释模板中的内容,以及使用 {%= %} 来输出包含 HTML 字符的内容,而不进行转义。

编写模板文件

1. 模板文件的定义和组织方式

在 HTML 文件中使用 <script> 标签定义模板,或者将模板存储在外部文件中,并通过 <script> 标签引入。

<script id="template1" type="text/html"><h1>{{title}}</h1>
</script><script src="template.js"></script>

2. 嵌套模板和局部模板的使用

在一个模板中通过变量方式引入其他模板作为子模板,并拥有自己的独立数据。

<script id="template2" type="text/html"><h2>{{subTitle}}</h2>{{include 'template1'}}
</script>

3. 引入外部数据和动态生成内容

通过传入数据对象,在模板中使用数据对象的属性来动态生成内容。

const data = {title: 'Hello Art-template',subTitle: 'This is a sub title'
};
const html = template('template2', data);

渲染和数据处理

1. 创建渲染函数并传入数据

使用 template.compile 方法创建渲染函数,并通过调用该函数传入数据来渲染模板。

const render = template.compile('<h1>{{title}}</h1>');
const data = {title: 'Hello Art-template'
};
const html = render(data);

2. 渲染结果的获取和输出

将渲染后的结果保存到一个变量中,并输出到页面中。

const html = template('template1', {title: 'Hello Art-template'});
document.getElementById('container').innerHTML = html;

3. 注意事项

当需要对数据进行复杂的处理时,可以通过定义过滤器来实现。过滤器是一个函数,接收输入数据并返回处理后的结果。

提高效率的技巧和方法

1.模板的复用和模块化

  • 将可复用的模板片段抽离成独立的模板文件:将经常使用的模板片段(例如头部、尾部、导航栏等)抽离成单独的模板文件,可以提高代码的可维护性和复用性。
  • 在需要的地方引入和调用:使用 ​{{include}}​ 标签引入其他模板文件,并传入相应的数据进行渲染。这样可以避免重复编写相同的模板代码。
    如何有效地组织和管理模板文件:

2. 合理地组织模板文件

  • 将不同类型或功能的模板文件存放在合适的目录中,便于管理和查找。
  • 使用命名规范:给模板文件以有意义的名称,方便开发者理解和调用。按照页面、模块或功能等进行命名。
  • 模块化开发:将模板拆分为更小的模块,使每个模块具备独立的功能和职责,方便单独维护和拓展。

3.性能优化

  • 增量渲染: 如果数据量较大,可以将模板分成多个片段,每次只渲染部分需要更新的内容,而不是整个模板。这样可以减少重复渲染的工作量,提高渲染效率。
  • 缓存模板:Art-template 支持模板的缓存机制,默认情况下启用缓存。对于频繁渲染且数据不经常更新的模板,可以启用缓存功能,以减少编译和渲染的开销。
  • 减少 DOM 操作:在渲染大规模数据时,尽量减少直接操作 DOM 的次数。可以使用字符串拼接或创建一个文档片段,在最后一次性插入到 DOM 树中,以提高性能。
  • 合理使用过滤器:过滤器是对数据进行处理和格式化的方式。但是要注意过滤器会引起额外的计算开销,因此在使用过滤器时要权衡其带来的性能影响。

http://www.ppmy.cn/news/1018753.html

相关文章

Linux配置QT Creator环境:ubuntu中安装QT Creator环境

一、前景 目前市面上很多公司使用QT Creator进行界面开发&#xff0c;基本都会选择在Linux环境进行&#xff0c;优点不仅是市场所需&#xff0c;更是方便后期代码的移植&#xff0c;相较于Windows系统&#xff0c;Linux系统移植性非常好。故此篇文章&#xff0c;介绍如何在Linu…

Smart HTML Elements 16.1 Crack

Smart HTML Elements 是一个现代 Vanilla JS 和 ES6 库以及下一代前端框架。企业级 Web 组件包括辅助功能&#xff08;WAI-ARIA、第 508 节/WCAG 合规性&#xff09;、本地化、从右到左键盘导航和主题。与 Angular、ReactJS、Vue.js、Bootstrap、Meteor 和任何其他框架集成。 智…

Android AlertDialog标题居中

网上很多做法都是使用setCustomTitle方法实现的&#xff0c;我偏不&#xff0c;因为我已经找到了标题的textView了&#xff1a; 在show了之后可以拿到标题&#xff08;注意一定是show之后才能拿得到&#xff0c;create之后拿也是空的&#xff09;&#xff1a; TextView title…

iPhone手机怎么恢复出厂设置(详解)

如果您的iPhone遇到了手机卡顿、软件崩溃、内存不足或者忘记手机解锁密码等问题&#xff0c;恢复出厂设置似乎是万能的解决方法。 什么是恢复出厂设置&#xff1f;简单来说&#xff0c;就是让手机重新变成一张白纸&#xff0c;将手机所有数据都进行格式化&#xff0c;只保留原…

【算法题】1281. 整数的各位积和之差

题目&#xff1a; 给你一个整数 n&#xff0c;请你帮忙计算并返回该整数「各位数字之积」与「各位数字之和」的差。 示例 1&#xff1a; 输入&#xff1a;n 234 输出&#xff1a;15 解释&#xff1a; 各位数之积 2 * 3 * 4 24 各位数之和 2 3 4 9 结果 24 - 9 15 示…

嵌入式Linux驱动开发系列六:Makefile

Makefile是什么? gcc hello.c -o hello gcc aa.c bb.c cc.c dd.c ... make工具和Makefile make和Makefile是什么关系&#xff1f; make工具:找出修改过的文件&#xff0c;根据依赖关系&#xff0c;找出受影响的相关文件&#xff0c;最后按照规则单独编译这些文件。 Make…

windows 安装免费3用户ccproxy ubuntu 代理上网

Windows 上进行安装 ubuntu 上进行设置 方法一 (临时的手段) 如果仅仅是暂时需要通过http代理使用apt-get&#xff0c;您可以使用这种方式。 在使用apt-get之前&#xff0c;在终端中输入以下命令&#xff08;根据您的实际情况替换yourproxyaddress和proxyport&#xff09;。 终…

Windows 2016安装Jenkins

Jenkins 下载&#xff0c;安装 下载OpenJDK 11 for Wndows 两种方式 choco install openjdk11 https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20%2B8/OpenJDK11U-jdk_x64_windows_hotspot_11.0.20_8.msi how to enable administrator user to …