前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Web前端学习 第5章 node基础教程8 Nunjucks模板语法

Web前端学习 第5章 node基础教程8 Nunjucks模板语法

原创
作者头像
学习猿地
修改2020-06-19 17:49:41
8760
修改2020-06-19 17:49:41
举报
文章被收录于专栏:学习猿地

一、概述

代码语言:javascript
复制
在上一节内容中,我们了解到通过`render`方法不仅可以指定渲染的模板,还可以向模板传递数据。

本节我们继续讲解nunjucks模板语法,使其不仅可以展示一行字符串,还可以展示更为丰富的网页效果。

本章我们只讲解常用的功能,如果需要更多的nunjucks模板功能,可以到[nunjucks中文文档](https://nunjucks.bootcss.com/templating.html)查阅

一、循环语句

我们以融职教育的网站为例,视频列表中会显示多条数据,显示的数据条数取决于数据库中的数据量。所以页面的内容应该是应该根据后台数据动态显示。那么如何动态显示数据列表的,实例代码如下所示。

代码语言:javascript
复制
//数据
{"fruits":["香蕉","苹果","鸭梨"]}

<ul>
    {% for fruit in fruits %}
    <li>{{fruit}}</li>
    {% endfor %}
</ul>

二、分支语句

再看融职教育的首页,默认情况下,右上角显示的是登录按钮,如果登录之后,会显示用户头像。

也就是说页面的像是内容取决于当前用户状态,这样的功能可以使用分支语句制作,实例代码如下所示:

代码语言:javascript
复制
1 //数据
2 {"isLogin":true}
3 
4 {% if isLogin %}
5     <p>欢迎您来到我的网站</p>
6 {% else %}
7     <p>请登录</p>
8 {% endif %}

三、模板继承

融职教育每个页面的头部,都有相同的菜单,那么如果我们在每一个页面都重新写一遍菜单,这样的代码既不利于开发,也不利于维护。所以我们要把公共部分提取出来,可以用模板继承的功能来实现,实例代码如下所示:

代码语言:javascript
复制
 1 <!-- 模板layout.html -->
 2 <a href="/">首页</a>
 3 <a href="/images">图片</a>
 4 {% block content %}{% endblock %}
 5 
 6 <!-- home.html -->
 7 {% extends "./views/layout.html" %}
 8 {% block content %}
 9 <h1>首页</h1>
10 {% endblock %}
11 
12 <!-- images.html -->
13 {% extends "./views/layout.html" %}
14 {% block content %}
15 <h1>图片</h1>
16 {% endblock %}

四、include

某些页面可能会包含相同的组件,例如融职教育的轮播图,这样的内容可以通过include引入到网页中,降低网页的耦合。

代码语言:javascript
复制
1 {% extends "./views/layout.html" %}
2 
3 {% block content %}
4 <h1>首页</h1>
5 
6 {% include "./views/footer.html" ignore missing %}
7 
8 {% endblock %}

五、课后练习

通过nunjucks模板制融职教育网站,功能如下所示:

  1. 首页导航效果需要使用模板继承功能
  2. 文档列表、博客列表、视频列表要使用后台的数据
  3. 如果登录,显示用户名,如果未登录,显示登录按钮(是否登录通过一个变量控制即可)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
  • 一、循环语句
  • 二、分支语句
  • 三、模板继承
  • 四、include
  • 五、课后练习
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档