Jade之Mixins

Mixin

mixin允许我们对某一个块的重复使用,类似于函数。
用法:首先声明mixin,然后使用(在mixin名字之前加+即可以使用)即可。

最简单的mixin

jade:

//- 声明
mixin list
  ul
    li foo
    li bar
    li baz
    
//- 使用
+list
+list

html:

<ul>
  <li>foo</li>
  <li>bar</li>
  <li>baz</li>
</ul>
<ul>
  <li>foo</li>
  <li>bar</li>
  <li>baz</li>
</ul>

带参数的mixin

mixin支持传入参数,根据参数来改变块内容。

jade:

mixin pet(name)
  li.pet= name
ul
  +pet('cat')
  +pet('dog')
  +pet('pig')

html:

<ul>
  <li class="pet">cat</li>
  <li class="pet">dog</li>
  <li class="pet">pig</li>
</ul>

mixin块

mixin使用时,也可以包含一个块。通过判断,可以使内容不同。

jade:

mixin article(title)
  .article
    .article-wrapper
      h1= title
      //- 如果mixin含有块,则为块内容
      if block
        block
      else
        p No content provided

+article('Hello world')

+article('Hello world')
  p This is my
  p Amazing article

html:

<div class="article">
  <div class="article-wrapper">
    <h1>Hello world</h1>
    <p>No content provided</p>
  </div>
</div>
<div class="article">
  <div class="article-wrapper">
    <h1>Hello world</h1>
    <p>This is my</p>
    <p>Amazing article</p>
  </div>
</div>

mixin attributes

jade允许将隐性属性变量传入mixin

jade:

mixin link(href, name)
  a(class!=attributes.class, href=href, id!=attributes.id)= name

+link('/foo', 'foo')(class="btn" id="qaq")

html:

<a href="/foo" class="btn" id="qaq">foo</a>

在jade代码中,因为class属性和id属性已经逃逸,所以在mixin中需要使用!=,或者也可以使用&attributes

多参数

jade的mixin的形参可以为多个,即使未知多少个也可以。

jade:

mixin list(...name)
    each i in name
        p my name is #{i}

+list('Tom', 'Jack', 'Jim', 'Alice', 'Allen')

html:

<p>my name is Tom</p>
<p>my name is Jack</p>
<p>my name is Jim</p>
<p>my name is Alice</p>
<p>my name is Allen</p>

转载于:https://www.cnblogs.com/wsy06/p/4986218.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值