이 기사는 Chris Perry와 Ritesh Kumar가 검토 한 동료입니다. Sitepoint 콘텐츠를 최선을 다해 Sitepoint의 동료 리뷰어 덕분에!
이 기사에서는 JavaScript에서 템플릿에 대한 개요를 제공 할 것입니다. 먼저 JavaScript 템플릿이 무엇인지, 언제 사용해야하는지, 그리고 구현 방법에 대해 논의 할 것입니다. 우리는 콧수염, 핸들 바 및 jQuery 템플릿에 중점을 둘 것입니다.
키 테이크 아웃
JavaScript 템플릿은 HTML 구조를 컨텐츠에서 분리하여 코드베이스의 유지 관리 가능성을 향상시키는 방법을 제공합니다. 이들은 실시간 웹 앱과 국제화에 특히 유익하며, 종종 동일한 형식을 사용하여 다른 컨텐츠를 표시해야합니다.
mustache.js는 소규모 프로젝트 및 빠른 프로토 타입에 이상적인 다중 언어, 논리없는 템플릿 시스템입니다. 간단하고 종속성이 없으며 사전 컴파일 된 템플릿이 필요하지 않습니다. 또한 프로젝트는 템플릿이 대부분 동일하므로 나중에 handlebars.js로 쉽게 업그레이드 할 수 있습니다.
콧수염 위에 내장 된 handlebars.js는 블록 표현식과 사전 컴파일 된 템플릿을 지원하여 성능을 크게 향상시킵니다. 성능이 중요한 프로젝트에 적합하고 페이지 가중치에 18KB를 추가하는 것은 문제가되지 않습니다. 성능 이점과 파일 크기 감소를 보려면 사전 컴파일 된 템플릿을 사용해야합니다.
jQuery 템플릿은 콧수염이 있거나 handlebars.js만큼 인기가 없지만 간과해서는 안됩니다. jQuery가 필요하고 데이터 속성을 사용하여 HTML 조각에 데이터를 삽입 해야하는 위치를 나타냅니다. 파일 크기가 작기 때문에 이미 jQuery를 포함하는 프로젝트에 이상적입니다. 그러나 총 파일 크기를 고려할 때 jQuery를 사용하지 않는 프로젝트에는 권장되지 않습니다.
javaScript 템플릿이란 무엇입니까?
JavaScript 템플릿은 내부에 포함 된 컨텐츠에서 HTML 구조를 분리하는 방법입니다. 템플릿 시스템은 일반적으로 새로운 구문을 소개하지만 특히 이전에 다른 곳에서 템플릿 시스템을 사용한 경우 (예 : PHP의 Twig)와 함께 작업하기가 매우 간단합니다. 재미있는 점은 토큰 교체가 일반적으로 이중 곱슬 괄호 ({{...}})로 상징되는데, 콧수염과 핸들 바는 (힌트 : 옆으로 돌리기 위해 옆으로 돌리기) 입니다.
예
Codepen에서 sitepoint (@sitepoint)의 펜 콧수염 예제를 참조하십시오.
이 예에서 볼 수 있듯이 콧수염 기능은 두 가지 매개 변수를 가져옵니다. 콧수염 템플릿과 템플릿을 렌더링하는 데 필요한 데이터 및 코드가 포함 된보기 객체. 이 경우 이름과 전력 변수를 간단한 문자열로 바꾸고 있지만 훨씬 더 많은 일을 할 수 있습니다. 예를 들어 배열을 통해 루프하거나 현재보기를 뷰 인수로 사용하는 특수 렌더링 기능을 사용하십시오.
mustache.js는 소규모 프로젝트와 템플릿 복잡성이 최소한 빠른 프로토 타입에 적합합니다. 주목할만한 점은 Mustache.js로 프로젝트를 시작한 다음 템플릿이 (대부분) 동일하기 때문에 나중에 Handlebars.js로 쉽게 업그레이드 할 수 있다는 것입니다.
콧수염에 대한 자세한 내용을 읽으려면 확인 : 콧수염으로 html 템플릿 생성. handlebars.js
handlebars.js는 콧수염 위에 제작되었으며 대부분 콧수염 템플릿과 호환됩니다. 간단히 말해서, 그것은 콧수염을 제공하는 모든 것을 제공하며, 블록 표현식과 사전 컴파일 된 템플릿을 지원합니다. 사전 컴파일 된 템플릿은 큰 마진으로 성능을 높이기 때문에 큰 문제입니다 (대략적인 성능 테스트에서는 콧수염 템플릿의 절반에 약 절반에 렌더링 된 사전 컴파일 된 핸들 바. JS 템플릿). 블록 표현식을 사용하면 템플릿에 더 많은 논리를 포함시킬 수 있습니다. 이들의 가장 일반적인 예 중 하나는 고급 반복자입니다. 에 각 항목을 감싸는 목록 반복자를 만듭니다. 블록 표현식에 대한 자세한 내용은 여기를 참조하십시오
키 포인트
86kb 파일 크기 (대형) 또는 18kb 사전 컴파일 된 템플릿을 사용하는 경우
블록 표현식 (도우미)
사전 컴파일 된 템플릿
의존성 없음
예
-
Codepen에서 sitepoint (@sitepoint)의 펜 핸들 바 예제를 참조하십시오.
handlebars.js는 성능이 중요한 프로젝트에 적합하며 페이지의 무게에 18KB를 추가하는 것에 대해 크게 걱정하지 않습니다. 블록 표현식을 사용하고 싶다면가는 길입니다. -
handlebars.js (및 크게 감소 된 파일 크기)의 성능 이점을 확인하려면 사전 컴파일 된 템플릿을 사용해야합니다. 효율적으로 수행하려면 handlebars.js 템플릿 컴파일을 빌드 프로세스에 추가해야합니다 (Grunt는 훌륭한 플러그인이 있습니다).
핸들 바에 대한 자세한 내용을 확인하려면 핸들 바에 대한 초보자 안내서를 확인하십시오.
jQuery 템플릿
jQuery 템플릿은 mustache.js 또는 handlebars.js만큼 인기가 없지만 간과해서는 안됩니다. 템플릿은 새로운 구문이없는 평범한 HTML이므로 콧수염 템플릿과 다릅니다. 토큰 교체 기술 대신 데이터 속성을 사용하여 HTML 조각에 데이터를 삽입 해야하는 위치를 나타냅니다.
키 포인트 -
7kb 파일 크기 (작은)
는 jQuery (82KB) 가 필요합니다
간단하지만 콧수염과 핸들 바의 작동 방식 와 다릅니다
사전 컴파일 된 템플릿이 없음
예
<span><span><span><script</span> id<span>="template"</span> type<span>="x-tmpl-mustache"</span>></span><span>
</span></span><span><span> <span><p>Use the <strong>{{power}}</strong>, {{name}}!</p>
</span></span></span><span><span></span><span><span></script</span>></span>
</span>
Codepen에서 sitepoint (@sitepoint)의 펜 jQuery 템플릿 예제 참조.
jQuery 템플릿은 파일 크기가 매우 작기 때문에 이미 jQuery를 포함하는 프로젝트에 이상적입니다. 그러나 프로젝트가 jQuery를 활용하지 않으면 총 파일 크기를 고려하는 것이 어렵습니다.
//Grab the inline template
var template = document.getElementById('template').innerHTML;
//Parse it (optional, only necessary if template is to be used again)
Mustache.parse(template);
//Render the data into the template
var rendered = Mustache.render(template, {name: "Luke", power: "force"});
//Overwrite the contents of #target with the rendered HTML
document.getElementById('target').innerHTML = rendered;
기타 옵션
물론이 문제에 대한 다른 많은 해결책이 있습니다.이 기사에서는이 기사에서 자세히 다루지 않을 것입니다. 다음은 다른 인기있는 선택에 대한 매우 빠른 개요입니다. <..> aUNDSCORE.js
밑줄은 다른 기능들 사이에서 템플릿 기능을 제공하는 인기있는 JavaScript 라이브러리입니다. 기본적으로 콧수염이 사용하는 이중 곱슬 브래킷 구문을 사용하지 않고 ERB 스타일 구분자 ()를 선택합니다.
내장 JS 템플릿 (EJS)
alterscore.js와 마찬가지로 내장 된 JS 템플릿은 템플릿에 ERB 스타일 구문을 사용합니다. EJS로 주목해야 할 것은 템플릿이 외부 파일이어야한다는 것입니다.
폐쇄 비고
그래서 어떤 것이 최고입니까? 대부분의 개발 문제와 마찬가지로은 총알이 없습니다. 그것은 많은 것들에 달려 있습니다;
당신은 이미 프로젝트에서 jQuery를 사용하고 있습니까?
에 대한 이전 경험이있는 템플릿 시스템은 무엇입니까?
템플릿에서 논리를 유지 하시겠습니까?
총 페이지 파일 크기에 대해 얼마나 걱정 되나요?
성능에 대해 얼마나 걱정 되는가/귀하의 웹 사이트는 저전력 장치를 지원해야합니까?
일단 이러한 요소에 대해 생각하면 위의 목록에서 교육을받은 선택을 할 수 있습니다. 그러나 앞에서 간단히 언급 한 바와 같이, 좋은 유연한 전략은 먼저 mustache.js를 구현 한 다음 추가 된 기능 또는 성능 이점이 필요한 경우 나중에 핸들 바를 핸들로 바꾸는 것입니다.
차임하고 싶습니까? 아래에 의견을 남겨주세요!
JavaScript 템플릿 엔진에 대한 질문
JavaScript 템플릿 엔진의 주요 차이점은 무엇입니까? JavaScript 템플릿 엔진은 구문, 성능 및 기능 측면에서 다양합니다. 예를 들어, EJS는 단순성과 사용 편의성으로 유명하며 HandleBars.js는 강력한 논리가없는 템플릿을 제공합니다. Mustache.js는 교차 호환성으로 인해 또 다른 인기있는 선택입니다. 프로젝트 요구 사항과 코딩 스타일에 맞는 템플릿 엔진을 선택하는 것이 중요합니다.
JavaScript 템플릿 엔진은 웹 개발을 어떻게 개선합니까? JavaScript 템플릿 엔진은 HTML을 생성하는 프로세스를 간소화하여 쉽게 동적 웹 페이지를 작성합니다. 이를 통해 개발자는 HTML 구조를 데이터와 분리하여 클리너 및 유지 관리 가능한 코드로 이어질 수 있습니다. 템플릿 엔진은 또한 재사용 가능한 구성 요소를 지원하는데, 이는 개발 시간을 크게 줄일 수 있습니다.
단일 프로젝트에서 여러 개의 자바 스크립트 템플릿 엔진을 사용할 수 있습니까?
단일 단일 템플릿 엔진을 기술적으로 사용할 수 있습니다. 프로젝트, 일반적으로 권장되지 않습니다. 여러 엔진을 사용하면 코드 불일치와 복잡성이 증가 할 수 있습니다. 필요에 맞는 템플릿 엔진 하나를 선택하고 프로젝트 전반에 걸쳐이를 고수하는 것이 가장 좋습니다. JavaScript 템플릿 엔진은 Express.js와 함께 작동 하는가? 템플릿 엔진을 선택하면 Express.js에서 기본 엔진으로 설정할 수 있습니다. 이를 통해 선택한 엔진을 사용하여 뷰를 렌더링하여 동적 HTML을 생성하는 프로세스를 단순화 할 수 있습니다. JavaScript의 템플릿 리터럴이란 무엇이며 템플릿 엔진과 어떻게 관련됩니까?
템플릿 리터럴입니다. 더 쉬운 문자열 보간 및 멀티 라인 문자열을 허용하는 JavaScript 기능. HTML을 생성하는 데 사용될 수 있지만 재사용 가능한 구성 요소에 대한 지원 및 우려 분리와 같은 템플릿 엔진이 제공하는 많은 기능이 부족합니다. 그러나 본격적인 템플릿 엔진이 필요하지 않은 간단한 사용 사례에 유용 할 수 있습니다.
내 프로젝트에 올바른 JavaScript 템플릿 엔진을 어떻게 선택합니까? 올바른 템플릿 선택 선택 엔진은 프로젝트 요구 사항과 개인 선호도에 따라 다릅니다. 프로젝트의 복잡성, 엔진의 학습 곡선 및 제공되는 기능과 같은 요소를 고려하십시오. 또한 커뮤니티를보고 엔진 주위의 지원을하는 것도 좋은 생각입니다.
JavaScript 템플릿 엔진 사이에 성능 차이가 있습니까?
예, 다양한 템플릿 엔진간에 상당한 성능 차이가있을 수 있습니다. . 일부 엔진은 템플릿을 컴파일하는 데 더 빠르고 다른 엔진은 렌더링에 뛰어납니다. 그러나 대부분의 웹 애플리케이션의 경우 이러한 차이점은 성능에 눈에 띄는 영향을 미치지 않을 것입니다. 나만의 JavaScript 템플릿 엔진을 만들 수 있습니까?
예, 고유 한 템플릿 엔진을 만들 수 있습니다. 기존 엔진에서 충족하지 않는 특정 요구가 없다면 일반적으로 권장되지는 않습니다. 템플릿 엔진을 만드는 것은 JavaScript에 대한 깊은 이해가 필요하며 시간이 소요될 수 있습니다.
JavaScript 템플릿 엔진으로 문제를 디버그하는 방법? 템플릿 엔진으로 문제를 디버깅하면 어려울 수 있습니다. 런타임에 오류가 종종 발생합니다. 그러나 대부분의 엔진은 문제의 원인으로 안내 할 수있는 유용한 오류 메시지를 제공합니다. 또한 Linter를 사용하여 구문 오류를 잡는 것이 좋습니다.
JavaScript 템플릿 엔진이 웹 개발에만 사용됩니까? 템플릿 엔진이 웹 개발에 가장 일반적으로 사용되지만 또한 가능합니다. 다른 맥락에서 사용됩니다. 예를 들어, 이메일, PDF 또는 기타 유형의 텍스트 기반 콘텐츠를 생성하는 데 사용할 수 있습니다. 템플릿 엔진의 주요 장점은 데이터를 프레젠테이션과 분리하는 능력으로 광범위한 애플리케이션에 유용 할 수 있습니다.
위 내용은 JavaScript 템플릿 엔진의 개요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!