Dieses Mal zeige ich Ihnen, wie Sie die NodeJS-Front-End-Template-Engine Swig verwenden und welche Vorsichtsmaßnahmen für die Verwendung der NodeJS-Front-End-Template-Engine Swig gelten. Das Folgende ist ein praktischer Fall, schauen wir uns das an.
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 wird von Person zu Person je nach Bedarf unterschiedlich sein
Dies ist ein Vergleich zwischen den beiden
http ://vschart.com /compare/swig-template-engine/vs/jade-template-engin
Lernen wir mehr über swig, die Front-End-Template-Engine
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 }}
{{ 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>
{ % 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 % }
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上的管道命令非常像 大写首字母 9.set命令 用来设置一个变量,在当前上下文中复用 相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章! 推荐阅读:
{{ birthday|date('Y-m-d') }}
{{ name|title }}
{% set foo = [0, 1, 2, 3, 4, 5] %}
{% for num in foo %}
<li>{{ num }}</li>
{% endfor %}
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die NodeJS-Front-End-Template-Engine Swig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!