jade是使用JavaScript实现,可供nodejs使用的高性能模板引擎(性能高不高,有些争议。姑且称之为高性能吧!)。模板引擎有很多,主要使用比较广泛的是jade和ejs,modejs项目默认使用jade作为模板引擎,我也就不多说了至于如何选择,还是得就事论事综合各种因素来考虑。在此不对优缺点进行分析。插一句嘴,ejs的语法更像jsp、asp这样的技术而jade更像python的语法风格,缩进来缩进去,有点绕。不过这并不影响代码的可读性(我是这么认为的)。不管是jade还是ejs语法都比较简单,所以不存在哪个容易上手,就算你没使用过jsp或者Python也不会影响学习,只是接触过jsp或者Python的人看jade代码可能比较亲切罢了,我觉得把一个技术语言和另一个技术语言来做比较的这么学习是不太明智的,起码不能什么都去比较。每种语言都有自己的风格和独立性,不混在一块为妙。

jade是nodejs一个重要模块,jade文件可以被预编译成为.js文件,也可以被编译成为目标html代码,还是很友好的。如果你得到的是预编译后的js文件,那么你完全可以在客户端去调用执行,没有任何问题!下面简单的记录一下jade的基本使用规则和一些示例代码:

1,代码缩进、文档申明、标签的属性书写、标签元素的内容书写

以上简单的列出了一些jade的基本语法,不写元素的情况下,jade默认解析成为div元素。属性一般写在一对括号中间,两个属性使用逗号分隔。

2,jade的文档注释和内容换行

行注释很清楚,块注释是没有见过的!不过也不麻烦。文本换行使用元素后边加. 或者文本前边加|。但是必要的缩进是得明确的。

3,jade的变量申明和变量引用

没有什么可说的!

4,jade的编译

原谅我总是这么马虎,jade是node生态之中的一个模块,你可以使用npm 安装到本地。npm install jade -g。建议使用-g来安装到全局使用。jade的使用也很简单。jade fileName.jade –P –w 就可以了。-P表示pretty也就是漂亮的格式化的,-w表示修改检查和自动编译。好了,插播完毕。

5,内部声明的变量会被优先执行,如果有继承那么你也可以说是被复写了。

6,变量是有方法提供使用的哦!例如数组变量就有length可以用。具体就不列举了,大致和js差不多。遇到错误直接去查API就好了。

7,jade的转义和非转义

上面好像也已经很清楚了。但是需要注意的是 p=varName 这种形式的情况下 后面是不能再追加内容的!但是一定不能追加吗?不一定。呵呵,因为原来p=varName如果varName没有被定义会输出undefined,但是现在输出的是空串哦!所以再插一句嘴:jade包括node在内的所有框架工具集合的更新速度非常之快。所以再生产环境中需要自己去测试或者去看官方的解释文档来做判断。

8,条件语句、循环语句、switch语句

9,mixin

现在开始搞点有比较好玩的,对,没错,就叫迷信。

等等,mixin 还有点没说完!

有点凌乱不过看起来非常的犀利!

10,block和extends

block blockName  换行定义的所有jade模板都是blockName的内容。在jade文件中可以随意调用(本文件中)。extends可以使得jade实现继承关系。假设index.jade中定义了头部和尾部,那么在头尾之间可以插入对block的调用,block blockName 然后再blockName的定义文件中在文档首部写上extend index.jade 。那么index.jade文件就会是包括头尾合blockName块的完整代码。对,没错。这样的话就实现了代码的简单的模块化处理。

11,include

搞过jsp的都知道

12,jade在node中的渲染

var http = require('http')var jade = require('jade')//var html2jade = require('html2jade')

http.createServer(function(req, res) {

res.writeHead(200, {'Content-Type': 'text/html'})//html2jade.convertDocument(document, {}, function(err, jade) {

//})

//1. jade.compile

//var fn = jade.compile('div #{course}', {})

//var html = fn({course: 'jade'})

//2. jade.render

//var html = jade.render('div #{course}', {course: 'jade render'})

//3. jade.renderFile

var html = jade.renderFile('index.jade', {course: 'jade renderFile', pretty: true})

res.end(html)

}).listen(1337, '127.0.0.1')

console.log('Server running at 1337')

这里使用到了一些jade的核心API,有renderFile render   compile 这些接口可以实现在node中对jade文件的编译输出控制。还有HTML2Jade这个模块的使用,顾名思义,HTML和Jade之间的互相转化。貌似非常有用,先标记备用吧!renderFile好像比较常用一点吧!

13,jade的扩展:filter

filter的作用就是插入其他语言的脚本并且对其进行解释。比如:

:markdown

Hi,this is **huazi** [link](http://huazihear.github.io)

:less

body{

p{

color:red;

}

}

14,jade的客户端使用!

jade文件的目标编译语言是HTML,但是我们知道jade使用JavaScript实现的编译系统,所以jade可以使用类似预编译的功能,使其目标代码指向js。呵呵,js是可以在客户端来调用的,so,jade的客户端使用问题解决了!

了解完这些,估计算是基本的开发需求差不多满足了,当然对于jade的描述只是一部分。而且jade和其他node生态平台中的模块一下在不停的发展,所以在使用的过程中最好还是对照API使用保险一点。

java模板引擎 jade_jade模板引擎相关推荐

  1. java模板引擎 jade_Jade 模板引擎使用

    在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...

  2. java模板引擎 jade_Jade模板引擎使用详解

    在 Express 中调用 jade 模板引擎 jade 变量调用 if 判断 循环 Case 选择 在模板中调用其他语言 可重用的 jade 块 (Mixins) 模板包含 (Includes) 模 ...

  3. 用JAVA写的word模板自动生成引擎

    大家好,我是TJ 一个励志推荐10000款开源项目与工具的程序员 TJ君做项目的时候最头疼什么?当然是写各种文档啦,尤其是在大公司做项目,各种规范文档不可少,虽然说一个成熟的项目管理过程中的确是要依靠 ...

  4. Java之利用Freemarker模板引擎实现代码生成器,提高效率

    开心一笑 [1.你以为我会眼睁睁的看着你去送死?我会闭着眼睛.2.给你讲个故事,从前有个笨蛋,他非常笨,别人问他问题他只会回答"没有",这个故事你听过吗?] 视频教程 大家好,我录 ...

  5. java 前端模板_前端模板引擎入门

    模板引擎 模板引擎 起到 数据和视图分离的作用, 模板对应视图, 关注如何展示数据, 在模板外头准备的数据, 关注那些数据可以被展示. 后端模板引擎 freemarker 如下介绍,  java后台的 ...

  6. Java使用Word的模板引擎 Poi-tl操控导出word文件

    Poi-tl介绍 poi-tl是一个基于Apache POI的Java库,用于操作Microsoft Office文档,包括Word文档(.docx).Excel电子表格(.xlsx)和PowerPo ...

  7. java调用js模板引擎_JavaScript模板引擎应用场景及实现原理详解

    本文实例讲述了JavaScript模板引擎应用场景及实现原理.分享给大家供大家参考,具体如下: 一.应用场景 以下应用场景可以使用模板引擎: 1.如果你有动态ajax请求数据并需要封装成视图展现给用户 ...

  8. 工具集核心教程 | 第五篇: 利用Velocity模板引擎生成模板代码

    前言 不知道大家有没有这样的感觉,在平时开发中,经常有很多dao.service类中存着很多重复的代码,Velocity提供了模板生成工具,今天我教大家怎么和这些大量的重复代码说再见. 参考项目:ht ...

  9. html模板引擎 字符串长度,Web前端模板引擎の字符串模板

    这是一个系列文章,将会介绍目前Web前端领域里用到的三种模板引擎技术,它们分别是: 基于字符串的模板 基于Dom操作的模板 基于虚拟Dom的模板 本文是这个系列的第一篇,着重介绍基于字符串的模板引擎的 ...

  10. ASP 模板引擎,ASP 模板类 (Taihom.Template.class)

    ASP 模板引擎 如想获取最新的这个类,可以写邮件给我 '//ASP 模板引擎 (Taihom.Template.class v2.0) '//Code By Taihom '//Taihom 原创 ...

最新文章

  1. Redis的安装与配置
  2. ML:从0到1 机器学习算法思路实现全部过程最强攻略
  3. IBatis.Net学习笔记十三:在IBatis.Net中调用存储过程
  4. 改变您一生的90/10原理
  5. 无返回值_只需一步,在Spring Boot中统一Restful API返回值格式与处理异常
  6. linux文件存储管理,深入探讨Linux文件系统管理小结
  7. OK335xS canutils deal with compile error
  8. Python天天美味(4) - isinstance判断对象类型
  9. 工作日志(一)、jquery上传插件uploadify的使用
  10. Wireshark 过滤器
  11. python中if __name__ == __main__:用法解析
  12. 西门子atch指令详解_西门子plc指令含义大全详解
  13. 拳皇格斗游戏3D版源代码
  14. Essay写作具体内容怎么了解?
  15. 益聚星荣:海底捞要关300家店,火锅还有救吗?
  16. 笔记本电脑安装CentOS7
  17. Shiro 权限管理
  18. Java精品项目源码第94期房屋租赁管理系统
  19. 信息安全系统设计基础实验二—20135215黄伟业20135222胡御风
  20. 图灵完备 java_图灵完备

热门文章

  1. qlistview 自定义控件_python – QListView中的自定义项
  2. 项目管理(PMP)》项目管理十大知识领域
  3. java中的方法重载
  4. labview技巧——获取网络时间
  5. programer2012
  6. Chapter Three : Python 序列之字符串操作详解
  7. tp5阿里云短信验证码
  8. springboot + quartz 分布式定时任务
  9. 拥有mac动态壁纸Backgrounds——让桌面更生动
  10. LNK2005错误的原因与解决