美文网首页
jade的复用块

jade的复用块

作者: suchcl | 来源:发表于2018-11-01 17:00 被阅读0次

jade的复用块,可以简单的作为一个函数来理解。
js中,函数的产生方式有两种,一种是函数声明,一种函数表达式。函数声明使用function关键字来声明,后跟函数名字、参数及函数体。然后参数可以有1个或多个,参数之间使用逗号分隔。使用关键字function声明的函数有一个特点,就是函数声明提升,在函数声明以前的代码种个也可以使用这个函数。这个特点是函数表达式所不具备的。

function add(num1,num2){
  var sum = num1 + num2;
  return sum;  
}

到jade中,有一种和js中函数类似的数据结构,叫做复用块。jade中的复用块使用关键字mixin来声明,关键字后跟复用块的名字,名字后可以跟参数列表,参数与参数之间使用逗号分隔,也可以不跟参数(不跟参数的时候,就可以不写复用块名后面的小括号)

mixin showName
    .name Nicholas
    .age 28

mixin box(cls,title)
    .box(class=cls)
        .hd
            h2=title
        .bd

上面两组为定义复用块的基本方式,定义完成之后就得调用它了,复用块的调用也很简单,通过使用加号(+) + 复用块的名字的方式实现调用。

+showName
+box("news","消息列表")

这样就实现了对复用块的调用,这里有一点需要注意的,就是js通过关键字function定义的函数可以实现函数提升,可以在函数定义之前的地方调用后面定义的函数,但jade中的复用块不可以,对复用块的调用只能在复用块的声明之后,jade中没有定义提升的概念。
上面的声明的box的复用块和调用,其实在我们的页面布局中是一个很经典的应用。我们在写网页的时候,一般情况下,项目中的很多网页都会有很多公用模块,我们之前的做法是先提取出来公共的UI模块,然后写一个基本的UI组件,然后以这个基本的UI组件为基础,在有相同结构的模块中直接复制一段代码,然后改个class名称,更改下模块的标题,就苏啊是一个新的模块完成了。传统的HTML结构:

<div class="box news">
    <div class="hd">
        <h2>新闻列表</h2>
    </div>
    <div class="bd"></div>
</div>

如果现在使用了jade的复用块的话,就不用使用复制代码的方式了,可以直接定义一个复用块就可以了,有了新的模块,直接调用定义好的复用块。

mixin box(cls,title)
    .box(class=cls)
        .hd
            h2=title
        .bd
+box("news","新闻列表")

这样就实现了一个新的新闻列表模块,“news”是我们给新模块的class名,“新闻列表”为新的模块的模块标题。其中模块“新闻列表”的class有2个box和news。这段jade代码解释为HTML后的对应代码为:

<div class="box news">
    <div class="hd">
        <h2>新闻列表</h2>
    </div>
    <div class="bd"></div>
</div>

从这个方面来讲,使用jade比直接使用HTML有了一定的进步。

相关文章

  • jade的复用块

    jade的复用块,可以简单的作为一个函数来理解。js中,函数的产生方式有两种,一种是函数声明,一种函数表达式。函数...

  • pug - HTML模板引擎安装器

    一、我们知道,pug原名jade,能很大情况下增加代码的复用,从而减少项目的开发时间。现在简聊下pug的用法 二、...

  • Jade

    Jade ware, even if it is made of natural jade. Jade ware ...

  • node知识点

    如何在jade中解析变量 在jade中做运算 jade解析style class 在jade中解析js 在jade...

  • jade操作HTML中的js

    如何在jade中解析变量 js部分 jade部分 在jade中做运算 js部分 jade部分 jade解析styl...

  • nodeJS压缩代码、jade

    一、jade: 一、终端命令(在存放jade的文件夹下)1、全局安装jade: npm install jade...

  • node4

    const jade=require('jade'); var str=jade.renderFile('./vi...

  • xcode 创建可以复用的代码块

    #######摘要: 我们可以常用的代码块创建为模板,方便代码的复用,提高编码效率。Xcode创建可复用的代码块 ...

  • jade学习笔记

    编译jade index.jade,得到压缩后的代码(也就是没有空格)jade -P index.jade,得到格...

  • 2018-12-05 jade

    1jade(模板引擎)使用jade解析字符串下载jade(命令:cnpm install jade/npm ins...

网友评论

      本文标题:jade的复用块

      本文链接:https://www.haomeiwen.com/subject/remxxqtx.html