Node.js 템플릿을위한 Jade와 EJS의 장단점은 무엇입니까? [닫은]
Jade와 EJS의 장단점은 무엇이며 각각의 목적은 무엇입니까?
이 있습니까 다른 표현 호환 템플릿 엔진 좋은 왜?
전에 Jade를 사용했습니다. Jade의 좋은 점은 구문이 짧기 때문에 더 빨리 입력 할 수 있다는 것입니다. block
옥에 복잡한 HTML 코드를 처리 할 때 나에게 많은 도움이 될 수있는 매우 강력하다.
반면, 간단한 if 조건에 따라 클래스를 DIV에 추가하는 것과 같은 Jade에서 간단한 작업을 수행하는 것은 어렵습니다. 이런 걸 넣어야 해요
- if (isAdmin)
div.admin.user
- else
div.user
Jade는 태그와 변수를 구별하지 않으므로 코드가 매우 혼란 스럽습니다 (적어도 나를 위해)
a(href='/user/' + user.id)= user.name
옥은 또한 디자이너에게 친숙하지 않습니다. 내 디자이너 친구는 종종 HTML과 CSS를 제공합니다 (최근에는 LESS로 전환했지만 여전히 HTML을 사용하고 싶습니다).이 이유로 Jade를 사용하면 HTML을 Jade로 변환해야합니다. 또한 Jade에서는 들여 쓰기를 사용해야하므로 HTML 구조가 복잡해지면 코드가 끔찍하게 보입니다 (특히 테이블). 때때로, 나는 내가 어느 레벨에 있는지조차 모른다
table
thead
tr
td
a
img
tr
td
tbody
tr
td
최근에 나는 EJS로 전환했으며 지금까지 기쁘다. 순수 HTML에 매우 가까우며 사용중인 프론트 엔드 템플릿 엔진과 동일한 구문을 사용합니다 (밑줄 템플릿). EJS를 사용하면 모든 것이 더 쉽다고 말해야합니다. 디자이너 친구로부터 HTML 템플릿을받을 때 모든 변환을 수행 할 필요는 없습니다. 내가해야 할 일은 동적 부품을 ExpressJS에서 전달 된 변수로 바꾸는 것입니다. Jade를 사용할 때 나를 미치게 만드는 것들이 EJS에서 해결되었습니다.
<div class="<%= isAdmin? 'admin': '' %> user"></div>
그리고 EJS가 무엇인지 알 수 있습니다
<a href="/user/<%= user.id %>"><%= user.name %></a>
Jade와 같은 짧은 구문을 놓치면 Zen-Coding과 EJS를 결합하여 일반적인 진행 속도를 높일 수 있습니다. 성능에 대해서는 차이가 없습니다.
그러나 EJS는 Jade만큼 강력하지 않으며 기본적으로 블록이 없습니다 (이 녀석은 EJS https://github.com/RandomEtc/ejs-locals에 대한 블록 기능을 구현했습니다 )
따라서 편안하게 만드는 것을 선택하는 것은 전적으로 귀하에게 달려 있습니다. 그러나 나와 같은 프론트 엔드에 다른 템플릿 엔진을 사용하려는 경우 양쪽에 동일한 것을 사용하는 것이 좋습니다
2013 년 12 월 16 일 업데이트 : 최근에는 EJS에서 Swig (Python 세계의 Jinja2와 비슷한 개념)로 전환했습니다. 주요 이유는 EJS의 도움을 받아도 블록이 부족하기 때문입니다 ejs-locals
. Swig는 템플릿에 일반 HTML을 사용하고 EJS에없는 필터 및 태그와 같은 템플릿 엔진에 필요한 멋진 기능을 많이 사용합니다.
나는 하나가 다른 것보다 낫다고 말하지 않을 것입니다. 그것들은 다르지만, 확실합니다. 그러나 "더 나은"은 비교적 상대적인 용어입니다.
HTML이 그리 나쁘지 않다고 생각하기 때문에 EJS를 선호합니다.
그러나 Jade는 다소 깨끗하며 뷰에서 깔끔한 코드를 만듭니다.
더 편하게 느끼는 것을 선택하십시오.
'Programming' 카테고리의 다른 글
C # XML 설명서 웹 사이트 링크 (0) | 2020.07.18 |
---|---|
명령 행을 사용하여 시작된 후 프로세스의 STDERR / STDOUT을 리디렉션 하시겠습니까? (0) | 2020.07.18 |
SQL Server 2008 및 SQL Server 2005 및 날짜 시간 사용 (0) | 2020.07.18 |
람다 식에는 코드 줄 저장 이외의 용도가 있습니까? (0) | 2020.07.18 |
플레이시 휴식! (0) | 2020.07.18 |