pug模板语法在vue中的使用--HTML的模板引擎

一、 介绍

pug,原名jade,是流行的HTML模板引擎,,最大的特色是使用缩进排列替代成对标签。它简化了HTML的成对标签的写法,使代码更加简洁、开发效率更高,但是同时它也带来了一些副作用:可移植性差、调试困难、性能并不出色。

二、使用理由

  1. HTML标签必须进行闭合,如果不闭合的话容易报错。
  2. HTML没有模板机制,如果不使用前端框架维护起来非常困难

三、简单事例

#hello
a.link-button Link
Link

四、安装

1.下载依赖
npm i -D pug pug-html-loader pug-plain-loader
2. 配置
// webpack.base.conf
{
        test:/\.pug$/,
        loader: "pug-html-loader"
      }
 // 或者
 module.exports = {
    chainWebpack: config => {
      config.module.rule('pug')
        .test(/\.pug$/)
        .use('pug-html-loader')
        .loader('pug-html-loader')
        .end()
  }
}
3. 使用,注意要加 lang=“pug”

4.实践

下面将拿出实际项目中的一些代码进行改造
原代码



改造后 12行代码变成9行,标签完全简化


五、语法

pug和HTML最大的不同在于它拥有自己的语法,拥有循环、条件控制、定义变量等功能。可以说如果在没有前端框架的年代,这些功能是多么的有诱惑力,但是,近几年React、Vue的出现,已经解决了这些痛点。

1.条件判断




描述

foo bar baz

上面的例子跟JavaScript的switch和if判断很相似。

2.循环


  • item
  • item
  • item
  • 可以看到,在pug里面可以使用for循环进行遍历,同时我还发现webstorm的代码格式化在格式化pug代码的时,不能正确的进行缩进,如果对上面的代码进行格式化,代码将无法正常进行解析。

    3.包含/模块化

    可以通过include xxx.pug将外部的文件插入进来,当然由于Vue自身已经包含了模块化功能,所以这项功能在Vue中几乎没有用处

    4.嵌入
    - var title = "On Dogs: Man's Best Friend";
    - var author = "enlore";
    - var theGreat = "转义!";
    
    h1= title
    p #{author} 笔下源于真情的创作。
    p 这是安全的:#{theGreat}
    
    
    

    On Dogs: Man's Best Friend

    enlore 笔下源于真情的创作。

    这是安全的:<span>转义!</span>

    • pug中使用了#{}的方式。
    • Vue中使用了{{}}双括号的方式。
    • React中使用了{}单括号的方式。

    以上是对pug模板引擎的一些了解,如果针对性工作可在官网上学习哦~

    你可能感兴趣的:(Vue,vue,模板引擎)