Heim > Artikel > Web-Frontend > Tutorial zur Swig-Nutzung der Nodejs-Front-End-Template-Engine
Dieses Mal bringe ich Ihnen ein Tutorial zur Verwendung der NodeJS-Front-End- Template-Engine swig, was sind die Vorsichtsmaßnahmen bei der Verwendung der NodeJS- Front-End-Vorlage Motor schluckt, und das Folgende ist der eigentliche Kampf. Werfen wir einen Blick auf den Fall.
Im Vergleich zu Jade bevorzuge ich immer noch die Swig-Front-End-Template-Engine. Obwohl die Syntax von Jade viel prägnanter und effizienter ist, ist das größte Problem für mich, dass sie nicht so aussieht html. . .
Also habe ich mich für swig entschieden. Die Seitenstruktur kommt mir bekannt vor und ist viel einfacher zu verwenden.
Viele Freunde kämpfen auch mit den Vor- und Nachteilen der beiden. Dies ist von Person zu Person unterschiedlich, je nach Bedarf.
Lassen Sie uns etwas über Swig, die Front-End-Template-Engine, lernen.
Eine kurze Einführung in swigswig ist eine JS-Template-Engine. Sie verfügt über die folgenden Funktionen:
1. Installation von swignpm install swig --save
2. Integration mit Express-Frameworkapp.js
var express = require('express'); var swig = require('swig'); var path = require('path') var app = express(); var port = process.env.PORT || 4000 //设置swig页面不缓存 swig.setDefaults({ cache: false }) app.set('view cache', false); app.set('views','./views/pages/'); app.set('view engine','html'); app.engine('html', swig.renderFile); app.listen(port); console.log('server is started at http://localhost:'+port); //index page app.get('/',function(req, res){ res.render('index',{ title:'首页 ', content: 'hello swig' }) })
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{{ title }}</title> </head> <body> {{ content }} </body> </html>
Dann testen Sie es
node app.js
Geben Sie im Browser ein: http://localhost :4000, der Ausführungseffekt ist wie folgt
Browser running.png
3. Grundlegende Verwendung
1. Variable{{ name }}
Hier ist zu beachten, dass an beiden Enden Leerzeichen stehen müssen, sodass beim Schreiben von {{name}} ein Fehler auftritt gemeldet werden
{{ student.name }}
Swig verwendet Extends und Block, um das Vorlagenvererbungslayout zu implementieren .html
Zuerst definieren wir eine Vorlage
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{% block title %}{% endblock %}</title> {% block head %}{% endblock %} </head> <body> {% block content %}{% endblock %} </body> </html>
In dieser Vorlage definieren wir drei Blöcke, die diese drei Blöcke erben können
Dann schreiben wir eine index.html dazu erb diese Vorlage
{% extends './layout.html' %} {% block title %} index {% endblock %} {% block content %} <p> <h1>hello swig</h1> <p> {% endblock %}
Beachten Sie, dass ich den Block {% Block Head %}{% Endblock %} nicht überschrieben habe
Das heißt, wir können viele Blöcke in der Datei „layout.html“ definieren Vorlagenseite und Unterseiten können eine selektive Implementierung haben.
4.include-VorlageFügt eine Vorlage für den aktuellen Standort hinzu. Diese Vorlage verwendet den aktuellen Kontext
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>{% block title %}{% endblock %}</title> {% include "./includes/head.html" %} {% block head %}{% endblock %} </head> <body> {% include "./includes/header.html" %} {% block content %}{% endblock %} </body> </html>5.if Urteil
{ % if name === '郭靖' % }
hello 靖哥哥
{ % endif % }
{ % if name === '郭靖' % }
hello 靖哥哥
{ % elseif name === '黄蓉' % }
hello 蓉妹妹
{ % else % }
hello 欧阳峰
{ % endif % }
Zuerst die Kastanie:
// arr = [1, 2, 3] { % for key, val in arr % } <p>{ { key } } -- { { val } }</p> { % endfor % }
Für in Schleifen integrierte Variablen:
// arr = [1, 2, 3] { % for key, val in arr % } <p>{{ loop.index }} -- {{ key }} -- {{ val }}</p> { % endfor % }
8.强大的内置过滤器
add(value):使变量与value相加,可以转换为数值字符串会自动转换为数值。
addslashes:用 \ 转义字符串
capitalize:大写首字母
date(format[, tzOffset]):转换日期为指定格式
format:格式
tzOffset:时区
default(value):默认值(如果变量为undefined,null,false)
escape([type]):转义字符
默认: &, <, >, ", '
js: &, <, >, ", ', =, -, ;
first:返回数组第一个值
join(glue):同[].join
json_encode([indent]):类似JSON.stringify, indent为缩进空格数
last:返回数组最后一个值
length:返回变量的length,如果是object,返回key的数量
lower:同''.toLowerCase()
raw:指定输入不会被转义
replace(search, replace[, flags]):同''.replace
reverse:翻转数组
striptags:去除html/xml标签
title:大写首字母
uniq:数组去重
upper:同''.toUpperCase
url_encode:同encodeURIComponent
url_decode:同decodeURIComponemt
使用方法:
例如我们要格式化一个时间,使用方法和linux上的管道命令非常像
{{ birthday|date('Y-m-d') }}
大写首字母
{{ name|title }}
9.set命令
用来设置一个变量,在当前上下文中复用
{% set foo = [0, 1, 2, 3, 4, 5] %} {% for num in foo %} <li>{{ num }}</li> {% endfor %}
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Das obige ist der detaillierte Inhalt vonTutorial zur Swig-Nutzung der Nodejs-Front-End-Template-Engine. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!