pug是什么,如何使用pug,pug如何在express中使用等等,一篇文章带您了解jade的全部内容,准备好了吗?发车。。。
安装
npm install pug -D
参考文档:https://pugjs.org/api/getting-started.html
Pug的一般渲染过程很简单。 将 Pug 源代码编译成一个 JavaScript 函数,该函数将数据对象(称为 “”)作为参数。用你的数据调用这个结果函数,瞧!,它将返回一个用你的数据呈现的 HTML 字符串。
注释
//-
这个注释不仅可以注释一行,还可以注释多行,但是需要换行
快捷键是ctrl+/
插值
- 短破折号(-)进行赋值,通过#{}进行插入值
- 如果需要展示大括号,可以通过'}'进行插入
- 如果需要展示#{}本身,那么就对其转义#{}
如:p Welcome to #{title}
条件判断
if => else if => else
- var user = {}
- var authorised = true
.user
if user.description
h2.green Description
p.description= user.description
else if authorised
h2.blue Description
p.description.
User has no description,
why not add one...
else
h2.red Description
p.description User has no description
switch语句
换行书写风格
- var friends = 10
case friends
when 0
p you have no friends
when 1
p you have a friend
default
p you have #{friends} friends
不换行风格
case friends
when 0: p you have no friends
when 1: p you have a friend
default: p you have #{friends} friends
迭代(注意需要换行展示值)
- 迭代方式:each val in [1, 2, 3, 4, 5]
- 迭代中携带索引值:each val, index in ['zero', 'one', 'two']
- 允许迭代对象:each val, key in {username: 'jack', age: 23, like: 'basketball'}
- 允许插入变量:each val in values.length ? values : ['There are no values']
- 展示默认值除了用三元判断值是否存在,还支持添加else,当values没有值时,会展示else的内容
- 迭代还可以使用关键字while:while n < 4;但是注意了这里赋值一定需要等号(=),并且不能有空格(li= n++),否则会出现致命错误
- 可以使用关键字for:- for (var x = 0; x < 3; x++)
例子:
ul
each val,index in [1, 2, 3, 4, 5]
li= val + ':' + index
ul
each val, key in {username: 'jack', age: 23, like: 'basketball'}
li= key + ': ' + val
- var n = 0;
ul
while n < 4
li= n++
包括include
- 通过关键字:include,我们可以将一个jade/pug文件插入到另一个文件中;
- include路径是绝对路径,即当前编译文件的路径(如这里的views),并且访问的文件如果没有后缀会自动添加pug后缀名;
- include也可以插入css,js.
举例
比如我们有一个如下目录结构的文件:
views com child1.jade child1.css index.jade
那么我们再index.jade中使用include的方式为:include com/child1.jade
混入mixin
一般使用格式
mixin list
p i am mixin
函数风格
mixin pet(name)
li.name #{name}
- 使用关键字mixin + name创建,然后使用+name进行渲染,这个name可以是变量名,也可以是函数名
- mixin可以编译为函数mixin pet(name),然后通过#{name}进行访问,最后通过传值渲染
- mixin中添加属性需要通过()括号进行括起来:li(class=name) #{name}
- 作为函数时,混入支持传入默认值:mixin article(title='Default Title')
- 作为函数时,还支持传入剩余值rest:mixin list(id, ...items)
举例
一般用法:
mixin list
ul
li foo
li bar
li baz
+list
函数用法:
mixin pet(name)
li(class=name) #{name}
默认值用法:
mixin arr(list=[1,2,3])
each val in list
p i am: #{val}
+arr()
+arr(['a','b'])
rest剩余参数用法:
mixin head(list,...rest)
if list
p i am list: #{list}
else if rest
each val in rest
p i am head: #{val}
+head(12)
以上便是jade的全部内容,实不相瞒,想要您一个赞~