jade include和extends、block

jade模板是MVC模型中的V--视图,可以编写网页文件,元素和HTML相同,基本使用就是将html中的标签尖括号去掉,如:

HTML:<p>这是HTML中的写法</p>

jade:p 这是jade中的写法

上述两种写法的显示效果相同

但是在jade中没有结束标签,浏览器或者说编译器(从jade编译输出成HTML)是怎么判断每个标签的结束范围呢

jade中采用的方法是缩进,子标签比父标签向后缩进两个空格,同一级别的缩进表示同一级别的元素

jade中的缩进很重要,而且容易出错,使用时要谨慎处理缩进

如:

doctype html
html
  head
    title 主页
    meta(charset='utf-8')
  body
      h1 This is login
上述代码会自动编译成

<!DOCTYPE html>
<html>
  <head>
    <title>主页</title>
    <meta charset="utf-8">
  </head>
  <body>
    <h1>This is login</h1>
  </body>
</html>


在jade中还提供了两种使用外部jade的方法include和extends

include例子如下:

bodey.jade文件内容:

doctype html
html 
  include ./header.jade
  body
    h1 This is body
header.jade文件内容如下:

head
  title jade-include测试
  meta(charset='utf-8')

生成的HTML文件如下:

<!DOCTYPE html>
<html> 
  <head>
    <title>jade-include测试</title>
    <meta charset="utf-8">
  </head>
  <body>
    <h1>This is body</h1>
  </body>
</html>

内容没错,注意代码中的缩进,在body.jade中使用include时,include是和body同级,因为此时直接把header.jade中的内容拿过来放在include位置(保持原有缩进)处,head会和body同级,但是在使用中如果把include顶个和html同级,在header文件中把所有的内容向后缩进两格,这样的结果是不行的,编译会出错,不知道为什么

另外在使用include时还有一个问题,就是吧head标签和html放在一起的时候,具体例子如下:

header中的内容:

doctype html
html 
  head
    title jade-include测试
    meta(charset='utf-8')

body中的内容:

include ./header.jade
  body
    h1 This is body
理论上讲此时body和head同级,会出现理想中的排版顺序,就像上面的正常顺序一样,但是最后生成的HTML如下:

<!DOCTYPE html>
<html> 
  <head>
    <title>jade-include测试
      <body>
        <h1>This is body</h1>
      </body>
    </title>
    <meta charset="utf-8">
  </head>
</html>
很明显不对,不是自己想要的,所以此方法不能取,但是为什么我也不知道,另外还有一种就是按照上面的错误来看是把body写成head的子元素了,那我们吧body中的标签向前取消两个空格缩进,看一下效果

<!DOCTYPE html>
<html> 
  <head>
    <title>jade-include测试</title>
    <meta charset="utf-8">
  </head>
</html>
<body>
  <h1>This is body</h1>
</body>
此时body又编程和html同级别的元素,所以此方法也不能用


entends:

我们使用entends和block语法试试

hearder中内容如下:

doctype html
html
  head
    title 主页
    meta(charset='utf-8')
  block body
body中的内容:

extends header.jade
block body
  body
    h1 This is login

注意看语法的使用方法其中的缩进,header中block放在和head同一级别中,因为在body中的第一个标签是body,是要和head同级的

在body中block放在顶格位置,因为此位置是要把整个header中的元素拿过来放在这,之后就是html第一级,head和body同为第二级

extends 相当于是导入此header文件到body中

最后生成的HTML内容如下:


<!DOCTYPE html>
<html>
  <head>
    <title>主页</title>
    <meta charset="utf-8">
  </head>
  <body>
    <h1>This is login</h1>
  </body>
</html>






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 用例图中的includeextends是两种不同的关系。 include表示一个用例需要另一个用例的支持,即一个用例包含了另一个用例。例如,一个购物车用例需要一个添加商品用例的支持,因为购物车中必须要有商品才能进行结算。 extends表示一个用例可以根据需要扩展另一个用例,即一个用例可以在另一个用例的基础上进行扩展。例如,一个下单用例可以根据需要扩展一个优惠券用例,如果用户有优惠券,则可以使用优惠券进行折扣。 总之,includeextends都是用例图中的关系,用于描述用例之间的依赖和扩展关系。 ### 回答2: 在用例图中,IncludeExtends是两种重要的关系关联符号。IncludeExtends是用于面向对象分析(OOA)和面向对象设计(OOD)的很重要的UML建模工具。它们都是UML中的扩展用例关系,具体如下: 1.Include(包含关系): Include是用来描述一个用例之间的整体和局部关系。它通常描述的是一种常见的业务逻辑。被包含用例通常是一些比较通用的流程或条件。包含用例是一个调用者(调用了包含用例的用例)和一个被调用者(被包含用例)之间的关系,也是一个强制性的关系。这意味着,如果调用者用例执行成功的话,被包含用例也必须执行成功。 举个例子:有个售货员要卖一些商品。但在出售商品操作之前,需要将这些商品从库房里拿出来,并填写商品编号、库存数量等相关信息。这个情况下,售货员用例要执行一个“拿出商品”子用例,直到这个子用例操作成功,才能继续执行出售商品操作。 Include关系的表示方式是:从调用者用例指向被包含用例,并在箭头上标注“包含(include)”字样。 2.Extends(扩展关系): Extends是描述用例之间继承和扩展关系的一种关系。它用于描述一种可选的业务逻辑。这意味着,在执行主用例时,如果扩展用例的执行条件被满足了,那么就会执行扩展用例的操作。如果没有满足条件,则不会执行扩展用例的操作。 举个例子:有个在线购物网站,用户可以选择支付或者使用积分支付。如果用户选择使用积分支付,就会执行扩展用例“检查用户积分”,如果用户的积分充足,则会执行积分支付操作;否则,就会执行普通支付。 Extends关系的表示方式是:从主用例指向扩展用例,并在箭头上标注“扩展(extend)”字样。 综上所述,IncludeExtends是UML中比较常用且重要的关系符号。Include表示调用一个在别处定义好的子用例,直到子用例调用成功后才会继续执行主用例;而Extends则是描述主用例和可选扩展用例之间的关系。对于用例建模过程中,IncludeExtends是非常有用的工具,有利于描述更加清晰的业务逻辑和模型。 ### 回答3: 用例图是软件工程中一种重要的建模工具,用于描述系统的需求功能和用户之间的交互。在用例图中,includeextends是两种重要的关系,分别用于描述用例之间的引用和拓展关系。 首先,include关系表示一个用例包含另一个用例。通常情况下,这种关系发生在某个用例需要另一个用例的支持时。比如,在一个在线购物系统中,添加商品到购物车的用例就需要在用户登录之后才能进行,因此可以把“用户登录”与“添加商品到购物车”之间建立include关系,以表明后者依赖于前者。在实现时,include关系可以被转换为代码的函数调用或子过程调用,便于代码重用和组织。 其次,extends关系表示一个用例可以扩展另一个用例。这种关系通常发生在某个用例需要在某些条件下进行特定的操作时。比如,在一个社交网络系统中,用户发表帖子的用例可以通过extends关系扩展为“为帖子加标签”的用例,表示在发布帖子时可以选择为其添加标签以达到更好的分类和检索效果。extends关系与include关系的区别是,前者是可选的,不影响原有用例的逻辑和实现,后者则是必需的,否则无法完成自身的功能。 在用例图中,includeextends关系的建立需要进行深入的分析和设计,以确保系统的功能和代码的结构合理、清晰和易于维护。同时,企业可以使用UML工具来实现和管理这种关系,以提高软件开发效率和产品质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值