이번에는 nodejs 프론트엔드 템플릿 엔진 swig 사용법을 보여드리고, nodejs 프론트엔드 템플릿 엔진 swig 사용 시 주의사항은 무엇인지 살펴보겠습니다.
jade에 비해 저는 여전히 swig 프론트엔드 템플릿 엔진을 선호합니다. jade의 구문이 훨씬 더 간결하고 효율적이지만, 저에게 가장 큰 문제는 html처럼 보이지 않는다는 것입니다. . .
그래서 swig를 사용하기로 결정했습니다. 페이지 구조가 친숙해 보이고 사용하기가 훨씬 쉽습니다.
많은 친구들도 둘의 장점과 단점으로 고민하고 있습니다. 이는 사람마다 필요에 따라 다를 수 있습니다.
둘의 비교입니다.
http://vschart.com/compare/ swig-template-engine/vs/jade -template-engin
프론트엔드 템플릿 엔진에 대해 함께 배워볼까요
swig에 대한 간략한 소개swig는 JS 템플릿 엔진으로 다음과 같은 기능을 가지고 있습니다. 기능:
- 대부분의 주류 브라우저를 지원합니다.
- 표현 호환성이 좋습니다.
- 객체 지향 템플릿 상속.
- 템플릿의 출력에 필터와 변환을 적용합니다.
- 루진에 따라 페이지가 렌더링될 수 있습니다.
- 페이지 재사용을 지원합니다.
- 동적 페이지를 지원합니다.
- 확장 가능하고 사용자 정의가 가능합니다.
1. swig 설치npm install swig --save
2. Express 프레임워크와 통합app.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
nbsp;html> <meta> <title>{{ title }}</title> {{ content }}
테스트 실행
node app.js
브라우저에 입력하세요: http://localhost:4000 실행 효과는 다음과 같습니다
Browser running.png
3. 기본 사용법
1. 변수{{ name }}
주의할 점 여기에는 공백이 있어야 하므로 {{name}}이(가) 오류를 보고합니다
{{ student.name }}
Swig은 확장 및 블록을 사용하여 템플릿 상속을 구현합니다. layout.html
먼저 템플릿을 정의합니다
nbsp;html> <meta> <title>{% block title %}{% endblock %}</title> {% block head %}{% endblock %} {% block content %}{% endblock %}
이 템플릿에서 우리는 세 개의 블록을 정의했습니다. 하위 템플릿은 이 세 개의 블록을 상속할 수 있습니다
그런 다음 이 템플릿을 상속하기 위해 index.html을 작성합니다
{% extends './layout.html' %} {% block title %} index {% endblock %} {% block content %} <p> </p><h1 id="hello-swig">hello swig</h1> <p> {% endblock %}</p>
복사하지 않았습니다. {% block head here %}{% endblock %} 이 블록
은layout.html 템플릿 페이지에서 많은 블록을 정의할 수 있고 하위 페이지를 선택적으로 구현할 수 있음을 의미합니다.
4.include template현재 위치에 대한 템플릿을 포함합니다. 이 템플릿은 현재 컨텍스트를 사용합니다
nbsp;html> <meta> <title>{% block title %}{% endblock %}</title> {% include "./includes/head.html" %} {% block head %}{% endblock %} {% include "./includes/header.html" %} {% block content %}{% endblock %}5.if판단
{ % if name === '郭靖' % }
hello 靖哥哥
{ % endif % }
{ % if name === '郭靖' % }
hello 靖哥哥
{ % elseif name === '黄蓉' % }
hello 蓉妹妹
{ % else % }
hello 欧阳峰
{ % endif % }
첫 번째 밤나무:
// arr = [1, 2, 3] { % for key, val in arr % } <p>{ { key } } -- { { val } }</p> { % endfor % }
For 루프 내장 변수:
- loop.index: 현재 루프의 인덱스(1부터 시작)
- loop.index0: 루프의 인덱스 current loop (0에서 시작)
- loop.revindex0: 끝에서 시작하는 현재 루프의 인덱스(시작) from 0)
- loop.key: 반복이 객체인 경우 현재 루프의 키입니다. 그렇지 않으면 loop.index
- loop.first와 동일합니다. 첫 번째 값인 경우 true를 반환합니다.
- loop.last: 마지막 값이면 true를 반환합니다.
- loop.cycle: 지정된 매개변수를 마침표로 사용하는 하나의 도우미 함수
- 사용법:
// 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上的管道命令非常像 大写首字母 9.set命令 用来设置一个变量,在当前上下文中复用 相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章! 推荐阅读:
{{ birthday|date('Y-m-d') }}
{{ name|title }}
{% set foo = [0, 1, 2, 3, 4, 5] %}
{% for num in foo %}
위 내용은 nodejs 프런트엔드 템플릿 엔진 사용 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

JavaScript는 브라우저 및 Node.js 환경에서 실행되며 JavaScript 엔진을 사용하여 코드를 구문 분석하고 실행합니다. 1) 구문 분석 단계에서 초록 구문 트리 (AST)를 생성합니다. 2) 컴파일 단계에서 AST를 바이트 코드 또는 기계 코드로 변환합니다. 3) 실행 단계에서 컴파일 된 코드를 실행하십시오.

Python 및 JavaScript의 미래 추세에는 다음이 포함됩니다. 1. Python은 과학 컴퓨팅 분야에서의 위치를 통합하고 AI, 2. JavaScript는 웹 기술의 개발을 촉진하고, 3. 교차 플랫폼 개발이 핫한 주제가되고 4. 성능 최적화가 중점을 둘 것입니다. 둘 다 해당 분야에서 응용 프로그램 시나리오를 계속 확장하고 성능이 더 많은 혁신을 일으킬 것입니다.

개발 환경에서 Python과 JavaScript의 선택이 모두 중요합니다. 1) Python의 개발 환경에는 Pycharm, Jupyternotebook 및 Anaconda가 포함되어 있으며 데이터 과학 및 빠른 프로토 타이핑에 적합합니다. 2) JavaScript의 개발 환경에는 Node.js, VScode 및 Webpack이 포함되어 있으며 프론트 엔드 및 백엔드 개발에 적합합니다. 프로젝트 요구에 따라 올바른 도구를 선택하면 개발 효율성과 프로젝트 성공률이 향상 될 수 있습니다.

예, JavaScript의 엔진 코어는 C로 작성되었습니다. 1) C 언어는 효율적인 성능과 기본 제어를 제공하며, 이는 JavaScript 엔진 개발에 적합합니다. 2) V8 엔진을 예를 들어, 핵심은 C로 작성되며 C의 효율성 및 객체 지향적 특성을 결합하여 C로 작성됩니다.

JavaScript는 웹 페이지의 상호 작용과 역학을 향상시키기 때문에 현대 웹 사이트의 핵심입니다. 1) 페이지를 새로 고치지 않고 콘텐츠를 변경할 수 있습니다. 2) Domapi를 통해 웹 페이지 조작, 3) 애니메이션 및 드래그 앤 드롭과 같은 복잡한 대화식 효과를 지원합니다. 4) 성능 및 모범 사례를 최적화하여 사용자 경험을 향상시킵니다.

C 및 JavaScript는 WebAssembly를 통한 상호 운용성을 달성합니다. 1) C 코드는 WebAssembly 모듈로 컴파일되어 컴퓨팅 전력을 향상시키기 위해 JavaScript 환경에 도입됩니다. 2) 게임 개발에서 C는 물리 엔진 및 그래픽 렌더링을 처리하며 JavaScript는 게임 로직 및 사용자 인터페이스를 담당합니다.

JavaScript는 웹 사이트, 모바일 응용 프로그램, 데스크탑 응용 프로그램 및 서버 측 프로그래밍에서 널리 사용됩니다. 1) 웹 사이트 개발에서 JavaScript는 HTML 및 CSS와 함께 DOM을 운영하여 동적 효과를 달성하고 jQuery 및 React와 같은 프레임 워크를 지원합니다. 2) 반응 및 이온 성을 통해 JavaScript는 크로스 플랫폼 모바일 애플리케이션을 개발하는 데 사용됩니다. 3) 전자 프레임 워크를 사용하면 JavaScript가 데스크탑 애플리케이션을 구축 할 수 있습니다. 4) node.js는 JavaScript가 서버 측에서 실행되도록하고 동시 요청이 높은 높은 요청을 지원합니다.

Python은 데이터 과학 및 자동화에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 데이터 처리 및 모델링을 위해 Numpy 및 Pandas와 같은 라이브러리를 사용하여 데이터 과학 및 기계 학습에서 잘 수행됩니다. 2. 파이썬은 간결하고 자동화 및 스크립팅이 효율적입니다. 3. JavaScript는 프론트 엔드 개발에 없어서는 안될 것이며 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축하는 데 사용됩니다. 4. JavaScript는 Node.js를 통해 백엔드 개발에 역할을하며 전체 스택 개발을 지원합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기
