文章目录
pug模板引擎简单学习
pug
模板引擎, 之前也叫jade
模板引擎. 用来做服务端渲染常用的一种模板引擎.
pug
模板引擎的默认文件头信息.🚩 注意: 编写
pug
模板的时候, 一定要注意, 如果你使用空格
来缩进, 那么你整篇文件最好都要用空格
来缩进, 如果你使用tab键
来缩进, 那么最好你整篇都要用tab键
来缩进, 要保证整篇文件的缩进风格一致, 否则很容易导致不易察觉的问题.
pug模板中注释写法
pug
模板引擎中的注释的写法 .
pug
模板文件中, 有两种形式的注释.
- 一种是
html
的注释, 可以最后编译成html
的注释.- 一种是
pug
的注释, 仅仅用来我们编写代码的时候来看的注释, 不会再编译成html
中的注释内容.#1. pug 的注释 //- 我是pug的注释,单行的 //- 我是第一行注释 我是第二行注释 .....多行注释 # -------------------------------------------------- #2. html 的注释 // 我是html的注释 单行的注释 // 我是第一行html的注释 我是第二行html的注释 .......多行html注释
pug模板引擎常用语法
缩进语法
一个缩进表示一层
html
嵌套, 不缩进, 则表示html
结构时同级的, 如下:<!DOCTYPE html> html(lang="en") head meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1.0") title Document body h1 我是一级标题 div 我是和h1同级的div
style 样式的写法
用小括号的形式给
html
标签添加类名或属性.<!DOCTYPE html> html(lang="en") head meta(charset="UTF-8") meta(name="viewport", content="width=device-width, initial-scale=1.0") title Document // style. style后面加一个 点 号,表示开始编写style样式 style. .mydiv{ width:200px; height:200px; background: red; } body h1 我是标题 div 我是和h1同级的div // 给thml添加类名或属性 div(class="mydiv") 我是类名为mydiv
行内样式的编写形式
行间样式可以通过 小括号给属性的方式写行内样式, 然后
style
给一个对象, 对象内通过key
value
的形式编写样式.// 一种 类 js的对象的写法. .mydiv2(style={width:"100px", height:"200px",background:"cyan"})
script写js的写法
script
的写法跟style
的写法也一样, 需要在script
后面加上一个.
点号, 来表示script
内容开始了.script(type="text/javascript"). console.log("我是script标签里是js内容哦"); alert("我是pug中script 的写法哦!")
div的简写形式
可以通过类名或者
id
名的形式简写div
标签..mydiv2 我是div2 #myid 我是id为myid的 div
转义符号
pug
模板文件中的转义符号:|
, 用来保证某些内容原样输出.div hello // 如上情况, 在pug模板中, 另起一行写内容的时候, 会把 hello 编译成 <hello></hello> html标签, 如果我们想要原样输出该内容则需要用到转义符号 div | hello // 这里的 hello 就会原样输出, 就不会转换为html标签了
pug中定义变量
在
pug
模板引擎中, 可以像类似于js
的写法那样,定义变量, 循环之类的语法.在pug中定义变量, 用
-
中划线来定义, 演示如下- let str = "你好哇,pug变量" div #{str} // 在这里引用呈现一下对应的变量.
pug中的循环遍历
-
each in
循环遍历语法:
each item, index in usersArr
循环遍历.ul each item in usersArr li 姓名是: #{item.name} --> 年龄是: #{item.age}
-
for
循环遍历
**语法: **
- for(let i=0;i<4;i++) 循环体不再加大括号
🚩 注意:
for
循环前必须加一个-
中划线, 并且中划线和for
关键字之间必须有一个空格, 不然程序会报错.# 演示代码 ul - for(let i=0;i<5;i++) li #{i}
pug 中的 case when
类似于
js
中的switch case
语法,pug
中存在的是case when
语法和js
中的switch case
用法类似.- let num = 1 case num when 1 p num 是一 when 2 p num 是二 default p num 是其他值
混入模式,宏模式
定义一个静态内容
混入模式/宏模式, 即可以定义完重复使用某个定义的内容.
#1. 定义一个自己的标签内容, 只定义的时候不呈现. mixin myDiv div 我是非常常用的 div #2. 调用自己定义的标签, 可以多次调用. + myDiv + myDiv + myDiv
定义一个函数语法
定义函数:
#1. 定义一个函数 mixin pet(name,sex) p 这是一只 #{name};--> 它的性别是: #{sex} #2. 调用该函数 +pet("dog","female") +pet("cat","male")
include语法
include
语法可以用来包含公共的一些模板来引用指定模板include public.pug // 当前文件夹下, 同目录下的 pug模板 # 查找 assets目录下的 assets.pug 模板 include assets/assets.pug
总结
语法总结代码:
doctype html
html(lang='en')
head
meta(charset='UTF-8')
title Title
body
h1 #{users[0].name}
- let str = "hello,你好pug变量"
.str #{str}
ul
each item in usersArr
li 姓名是: #{item.name} --> 年龄是:#{item.age}
ul
- for(let i=0;i<5;i++)
li #{i}
- let num = 1
case num
when 1
p num 是一
when 2
p num 是二
default
p num 是其他值
mixin myDiv
div 我是非常常用的 div
+ myDiv
+ myDiv
+ myDiv
mixin animal(name,sex)
p 这是一只: #{name}-->性别是: #{sex}
+animal("dog","female")
+animal("cat","male")
include public.pug
include assets/assets.pug
script(type="text/javascript").
console.log("我是script标签里是js内容哦");
alert("我是pug中script 的写法哦!")