模板引擎在浏览器和服务器的渲染方法,及他们的区别(art-template)

主流的Thymeleaf模板引擎到底有多好用? Thymeleaf是什么? Thymeleaf是一种服务器端Java模板引擎,它通过在html标签中嵌入特殊的语法糖,实现双击html文件即可在浏览器中预览页面效果,又可以在服务端解析处理后渲染出动态页面; 这对于处理UI模板的前端设计人员非常友好,所见即所得。 同时对于服务器端人员来说,只需在html标签中嵌入语法糖,即可启用模板功能,渲染出动态页面,实现了前端设计人员和后端开发人员的职责分离。 Thymeleaf很容易学习与理解,并有着自己鲜明的特色,适合在后台应用,以及各种管理类系统中使用。 阅读详情

art-template模板引擎

art-template 不仅可以在浏览器使用,也可以在 node 中使用
art-templateAPI :http://aui.github.io/art-template/zh-cn/docs/index.html

在浏览器中使用模板引擎(art-template)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>06-在浏览器中使用art-template</title>
</head>
<body>
  <!-- 
    注意:在浏览器中需要引用 lib/template-web.js 文件

    强调:模板引擎不关心你的字符串内容,只关心自己能认识的模板标记语法,例如 {{}}
    {{}} 语法被称之为 mustache 语法,八字胡啊。
   -->
  <script src="node_modules/art-template/lib/template-web.js"></script>
  <script type="text/template" id="tpl">
    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    </head>
    <body>
      <p>大家好,我叫:{{ name }}</p>
      <p>我今年 {{ age }} 岁了</p>
      <h1>我来自 {{ province }}</h1>
      <p>我喜欢:{{each hobbies}} {{ $value }} {{/each}}</p>
    </body>
    </html>
  </script>
  <script>
    var ret = template('tpl', {
      name: 'Jack',
      age: 18,
      province: '北京市',
      hobbies: [
        '写代码',
        '唱歌',
        '打游戏'
      ]
    })
    console.log(ret)
  </script>
</body>
</html>

在node中使用模板引擎(art-template)

安装:
npm install art-template
该命令在哪执行就会把包下载到哪里。默认会下载到 node_modules 目录中
node_modules 不要改,也不支持改。

在 Node 中使用 art-template 模板引擎

  1. 安装 npm install art-template
  2. 在需要使用的文件模块中加载 art-template
    只需要使用 require 方法加载就可以了:require(‘art-template’)
    参数中的 art-template 就是你下载的包的名字
    也就是说你 isntall 的名字是什么,则你 require 中的就是什么
  3. 查文档,使用模板引擎的 API

node.js

var template = require('art-template')
var fs = require('fs')
fs.readFile('./tpl.html', function (err, data) {
  if (err) {
    return console.log('读取文件失败了')
  }
  // 默认读取到的 data 是二进制数据
  // 而模板引擎的 render 方法需要接收的是字符串
  // 所以我们在这里需要把 data 二进制数据转为 字符串 才可以给模板引擎使用
  var ret = template.render(data.toString(), {
    name: 'Jack',
    age: 18,
    province: '北京市',
    hobbies: [
      '写代码',
      '唱歌',
      '打游戏'
    ],
    title: '个人信息'
  })
  console.log(ret)
})

tpl.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>{{ title }}</title>
</head>
<body>
  <p>大家好,我叫:{{ name }}</p>
  <p>我今年 {{ age }} 岁了</p>
  <h1>我来自 {{ province }}</h1>
  <p>我喜欢:{{each hobbies}} {{ $value }} {{/each}}</p>
  <script>
    var foo = '{{ title }}'
  </script>
</body>
</html>

在Express中配置使用express-art-template模板引擎

art-template-GitHub仓库
art-template 官方文档

  1. 安装
npm install --save art-template
//普通的
npm install --save express-art-template 
//搭配express使用的模板引擎
  1. 配置
    配置使用 art-template 模板引擎
    第一个参数,表示,当渲染以 .art 结尾的文件的时候,使用 art-template 模板引擎
//第一个参数用来配置视图的后缀名,这里是art,则你存储在views目录中的模板文件必须是xxx.art
//app.engine('art',require('express-art-template'))

//这里我们把art改为html
app.engine('html', require('express-art-template'))
  1. 使用
    Express 为 Response 相应对象提供了一个方法:render
    render 方法默认是不可以使用,但是如果配置了模板引擎就可以使用了
    res.render(‘html模板名’, {模板数据})
    第一个参数不能写路径,默认会去项目中的 views 目录查找该模板文件
    也就是说 Express 有一个约定:开发人员把所有的视图文件都放到 views 目录中
app.get('/', function (req, res) {
  res.render('index.html', {
     title: 'hello world'
  })
})

如果想要修改默认的 views视图渲染存储目录,可以

// 注意:第一个参数views千万不要写错
app.set('views', 目录路径)

子模板 include

  1. 语法
{{include './header.art'}}
{{include './header.art' data}}
  1. 案例
    index.html
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Document</title>
</head>
<body>
   {{ include './header.html' }}
   <h1>中间内容</h1>
   {{ include './footer.html' }}
</html>

header.html

<h1>头部</h1>

footer

<h1>尾部</h1>

运行后显示

头部
中间内容
尾部

模板继承

  1. 语法
{{extend './layout.art'}}
{{block 'head'}} ... {{/block}}
  1. 案例
    layout.html
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  
  <link rel="stylesheet" href="/node_modules/bootstrap/dist/css/bootstrap.css">
  {{ block 'css' }}{{ /block }}
    <!-- 留坑添加css -->
    
</head>
<body>

  {{ include './header.html' }}
  <!-- 留坑 -->
  {{ block 'content' }}
    <h1>默认内容</h1>
  {{ /block }}
  {{ include './footer.html' }}
  
  <script src="/node_modules/jquery/dist/jquery.js"></script>
  <script src="/node_modules/bootstrap/dist/js/bootstrap.js"></script>
  {{ block 'script' }}{{ /block }}
  <!-- 留坑添加js -->
  
</body>
</html>

index.html

<!-- 引入layout.html页面 -->
{{extend './layout.html'}}

<!-- 向名为css的block填坑 -->
{{ block 'css' }}
<style>
  body {
    background-color: skyblue;
  }
</style>
{{ /block }}

{{ block 'content' }}
<div>
  <h1>index 页面填坑内容</h1>
</div>
{{ /block }}

{{ block 'script' }}
  <script>
    window.alert('index 页面自己的 js 脚本')
  </script>
{{ /block }}

header.html

<h1>头部</h1>

footer

<h1>尾部</h1>

模板继承和子模板

使用模板继承和子模板,可以省略一些公共内容,减少代码量。

服务端渲染和客户端渲染的区别

  • 客户端渲染不需要重新加载页面,所以速度上较快。
  • 客户端渲染不利于 SEO 搜索引擎优化
  • 服务端渲染是可以被爬虫抓取到的,客户端异步渲染是很难被爬虫抓取到的
  • 所以你会发现真正的网站既不是纯异步也不是纯服务端渲染出来的,而是两者结合来做的
  • 服务端渲染可以在网页源代码中看到渲染后的代码,而客户端渲染的看不到,只能点击查看元素中看到。
  • 例如京东的商品列表就采用的是服务端渲染,目的了为了 SEO 搜索引擎优化
  • 而它的商品评论列表为了用户体验,而且也不需要 SEO 优化,所以采用是客户端渲染
art-template-模板引擎篇 1. 概述 art-template的GitHub仓库:https://github.com art-template的官方文档:https://github.com/aui/art-template art-template 主要用于客户端 art-template 模板引擎不仅可以在浏览器使用,也可以在node中使用 模板引擎最早诞生于服务器领域,后来才发展到前端 art-template 模板引擎,属于第三方模块 2. art-template 的安装 安装命令:npm install art- 阅读详情

相关推荐

华为硬件逻辑岗笔试题(一)

积少成多,集腋成裘,坚持!!! 目录 1. 进制转换 2. 状态机和编码方式 3. 存储器的分类 4. Verilog语法中的操作符 5. 对组合逻辑的认识 6. 对时序逻辑的认识 7. 竞争冒险的认识 8. 基本时序逻辑电路 9. 建立时间和保持时间 10. 同步时序电路 11. 组合逻辑和时序逻辑判断 13. 基本总线的理解 14.加法器 15.FPGA开发工具 1. 进制转换 1、十进制46.25对应的二进制表达式为( )。 A 101110.11...

qq_42235129的博客 1万+

通过node和art-template实现服务端渲染

通过node和art-template实现服务端渲染一、实现内容描述二、知识补充服务端渲染介绍art-template模板渲染的步骤三、项目目录结构四、项目初始化五、项目入口文件编写编写步骤app.js文件代码六、页面编写index.html页面代码七、启动项目

莫宛的博客 1618

告别版本过低提示!微信3.9登录修复与聊天记录无缝迁移全攻略

本文详细解析了微信3.9版本过低提示的根源,并提供了完整的修复方案和聊天记录迁移指南。通过专用修复工具绕过版本检测,以及新旧版本聊天记录目录对比,帮助用户实现无缝迁移。特别提醒备份重要数据,确保操作安全。

weixin_42535461的博客 3141

游戏服务器和一般服务器对比,有何特别?

背景在中国的互联网诸多业务领域中,游戏一直是充当“现金牛”而存在的。但是,在游戏服务器端开发领域中的很多重要问题,并没有被明确的分辨出其特异性,从而得到专门的对待。我们不管是在业界开源领域,还是内部分享中,很少会有专门针对游戏业务特征进行专门设计的组件、类库或者框架。我们从游戏的客户端方面来看,一款专业的游戏客户端引擎,已经是游戏开发的标配,比如最早的Flash Builder,到后期的Cocos2

YiShi's Blog 7627

CTP-API开发系列之三:柜台系统简介

综合交易平台(Comprehensive Transaction Platform,CTP)是专门为期货公司开发的一套期货经纪业务管理系统,由交易、风险控制和结算三大系统组成。接下来分享的内容,对于期货公司的负责交易、运维同事会比较熟悉,针对CTP-API接口对接的朋友可以了解一下,在接口之上的系统是怎样的。

码上助君的专栏 6197

基于大模型的重度膝关节骨关节炎全流程预测与治疗方案研究

本研究基于大模型构建了重度膝关节骨关节炎(KOA)预测体系,涵盖术前风险预测、手术方案优化、术中监测和术后康复指导全流程。通过分析临床和影像数据,模型在手术风险预测准确率(85%)、并发症预警(血栓预测准确率88%)等方面显著优于传统方法。研究实现了临床数据与AI技术的深度融合,术前预测指导麻醉选择(如高危患者推荐椎管内麻醉),术中实时监测生命体征,术后个性化康复方案使患者HSS评分平均提升45分。

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1389

html mui模板怎么调用摄像头拍照_Java后端模板引擎对比

一、什么是模板引擎模板引擎是为了解决用户界面(显示)与业务数据(内容)分离而产生的。他可以生成特定格式的文档,常用的如格式如HTML、xml以及其他格式的文本格式。其工作模式如下:二、java常用的模板引擎有哪些jsp:是一种动态网页开发技术。它使用JSP标签在HTML网页中插入Java代码。Thymeleaf : 主要渲染xml,HTML,HTML5而且与springboot整合。Ve...

weixin_39755824的博客 320

【血汗泪心路历程】怎么彻底删掉Sangfor文件?怎么彻底删除easyconnect?删除sangfor后网络坏了、某些app无法正常启动怎么解决?

教程来源于网络的五湖四海+gpt解答。用到了好几个教程和方法,遂这篇总结一下。会标明出处!先上一下战绩:终于把sangfor扔进回收站里了!!!哈哈哈那一刻真的好爽。

weixin_71246590的博客 6万+

服务端(七)express 框架中的 ejs 模板引擎

服务端(七)express 框架中的 ejs 模板引擎

微光无限的博客 897

【VoxCPM2】在Windows上从零搭建VoxCPM2 语音生成和语音克隆AI算法

建议你了解清楚VoxCPM2,再来考虑是否需要自己在本地搭建。

AnChenliang_1002的博客 753

关于 ABAP OPEN SQL 的动态 WHERE 条件和 Dynamic Selections

ABAP动态查询技术解析 本文介绍了ABAP中实现灵活数据库查询的动态选择技术,通过FREE_SELECTIONS函数组实现用户自定义查询条件。核心内容包括: 传统固定WHERE条件的局限性,无法满足业务多变需求 Dynamic Selections机制的工作原理,使用FREE_SELECTIONS_INIT初始化、FREE_SELECTIONS_DIALOG交互 完整Demo程序演示如何构建通用表数据浏览器: 用户输入表名后校验权限 调用动态选择函数生成条件 动态拼接WHERE子句执行查询 使用CL_SA

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 676

day23 Node-art-template

简单在node中模板的使用

kwj258036的博客 1073

华为OD机试双机位C卷-分披萨 (Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【分披萨】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为od机试 - 分披萨。

qq_45776114的博客 1396

NodeJS中模板引擎,处理静态资源,服务端渲染

1 模板引擎的使用 1.1 下载模板 首先安装art-template模板,art-template不仅可以在浏览器使用,也可以在node中使用 安装,在哪个目录执行以下命令就会下载到那里去,默认下载到node_modules目录中,注意node_modules尽量不要更改,不支持更改 npm install art-template npm install=npm i。在git cl...

上善若泪 1550

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

模板引擎art-template的介绍

首先介绍我们的主角: 下载地址:https://github.com/aui/art-template 模板引擎插件(art-template),它的官方介绍是:拥有接近 JavaScript 渲染极限的的性能.今天我们就用它来渲染我们网页的部分内容. 需要渲染的部分: 这里面的页面结构极其相似,所以我们利用模板可以生成. 接着,我们介绍模板的...

weixin_42839080的博客 8912

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Express与传统Web应用(服务端渲染、art-template模板引擎、配置静态资源托管)

一、服务端渲染相关的概念 什么是渲染? 例如对于我们前端开发者来说最常见的一种场景就是:请求后端接口数据,然后将数据通过模板绑定语法绑定到页面中,最终呈现给用户。 数据: 模板: 渲染(数据+模板)结果: 把(数据+模板)拼接到一起的这事儿就是我们这里所指的渲染。 二、传统的Web应用 最早期,Web页面渲染都是在服务端完成的,即服务端运行过程中将所需的数据结合页面模板渲染为HTML,响应给客户端浏览器。所以浏览器呈现出来的是直接包含内容的页面。 工作流程: 这种方式的代表性技术有:ASP、PHP、

zep 480

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

art-template 的使用

1: art-template 的使用: art-template 不仅可以在浏览器中使用, 而且可以在node 环境中使用 2: 安装: npm install art-template 的使用: 3: 在node 环境中可以使用art-template 模板引擎: 4: 模板引擎最早就是诞生于服务器领域, 后来才发展到了前端。 5: 安装npm install art-template 模板 在需要是使用的文件模块中加载 art-template 模块; 6: 只需要使用req.

weixin_45677987的博客 682

nodejs后端使用art-template

前言: 写这些东西是我怕要用的时候忘了怎么用 为什么要使用两种渲染? 服务端渲染 说白了就是在服务端使用模板引擎 模板引擎再造诞生于服务器端,后来才发展到了前端 服务端渲染和客户端渲染的区别: 客户端渲染不利于 SEO 搜索引擎优化 服务端渲染时可以被爬虫爬取到的,客户端异步渲染时很难被爬虫抓取到 所以你会发现真正的网站既不是纯异步,也不是纯服务端渲染出来的 而是两者结合出来的 例如京东的商品列表就采用的是服务端渲染,目的是为了SEO搜索引擎优化 而它的商品评论列表为用户体验,而且也不需.

没得简介 388

Node模版引擎(ejs, art-template)

模版引擎 1 ejs模版引擎 安装ejs模版引擎 $ npm i ejs -s 使用模版引擎 const express = require('express'); const app = express(); // 设置视图模版引擎 'ejs' app.set('view engine', 'ejs'); // 配置模版目录 让程序直到模版引擎的位置 app.set('view', './views'); app.get('/show', (request, response) =>

MiMeng的博客 2567

Form表单及模板引擎

Form表单及模板引擎什么是Form表单Form表单的一些属性表单的同步提交及优缺点通过Ajax提交表单数据JQuery的监听表单提交事件取消表单默认提交行为快速获取表单中的数据模板引擎模板引擎的好处art-template模板引擎使用art-template模板引擎1.导入template-web.js2.定义数据3.定义模板调用`template()`函数渲染HTML结构 什么是Form表单 表单在网页中主要负责数据采集功能,通过<form></form>标签的提交操作,把采集到

@养鱼的猫的博客 541

服务端渲染和客户端渲染的对比

这里结合art-template模板引擎说明。 首先了解下前端页面中如何使用art-template 1、script 标签导入包,当这个标签导入完毕后,在window全局中就有了template 函数。 2、创建一个script标签,内部是模板字符串 <script type="text/template" id="tmpl"> 3、 var htmlStr = ...

diliedou4174的博客 306

初步实现APACHE功能----art-template----服务器处理表单提交

模板引擎:art-template 安装: 使用npm安装,切换到要安装的目录下,语法:npm install art-tempalte 就可以安装了 使用: 1.先安装art-template 2.引用lib\template-web文件 3.插入一个type类型非js的要输出在html界面上的文件,同时给上id 4.根据所给的id,引用模板方法给变量赋值,并且返回对象 语法:...

weixin_42194583的博客 683

Node.js---客户端渲染和服务端渲染

目录 核心知识: 模板引擎: 例子: 安装: 浏览器使用: 服务器使用: 步骤: 客户端渲染: 服务端渲染: 服务端渲染和客户端渲染的区别 核心知识: 模板引擎: 在服务端和客户端都可以用模板引擎 模板引擎不关心你的字符串内容,只关心自己能认识的模板标记语法,例如{{}},被称为mustache语法,八字胡 例子: art-template: 不仅可以在浏览器使用,...

李晨璐的博客 641

Nodejs学习总结(三)模板引擎及Express及中间件

解决

MissQ_coffee的博客 313

Node.js学习 (四) 服务端渲染

art-template 不仅可以在浏览器使用,也可以在 node 中使用 安装 该命令在哪执行就会把包下载到哪里。默认会下载到 node_modules 目录中 node_modules 不要改,也不支持改。 在 Node 中使用 art-template 模板引擎 模板引起最早就是诞生于服务器领域,后来才发展到了前端。 安装 npm install art-template 在需...

June.1 718

artTemplate模板引擎

artTemplate模板引擎1. 什么是模板引擎2.模板引擎理解3.artTemplate模板引擎1. 浏览器2.NodeJS3.客户端渲染与服务端渲染的区别 1. 什么是模板引擎 模板引擎简单的理解就是:按照某种规则处理数据并显示,而此规则就是模板,按照该模板将数据传入,不用关于数据如何处理的,只需要关心数据的显示即可。模板引擎不关心内容,只关心规则。此外最开始的模板引擎出现于服务器,最后才不断引入到了客户端 2.模板引擎理解 最初没有模板引擎时的做法 当有大量数据的时候 var joson = [

chen__cheng的博客 602
上一篇: 不同屏幕大小引用不同的背景图
下一篇: nodejs笔记
喵_美
博客等级 码龄11年 445粉丝 102原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值