2012-02-14 4 views
2

콧수염에 대한 몇 가지 유스 케이스는 무엇입니까?콧수염 템플릿 라이브러리?

방금 ​​발견했는데 프레임 워크 (cakePHP, django 등)에서 일반 템플릿 파일을 만드는 것과 다른 점이 있거나 HTML + PHP 파일을 가지고있는 것과 어떻게 다른지 알 수 없습니다.

+1

사례 1 : 정적 전용 호스팅. – cheeken

+2

유스 케이스 # 2는 자바 스크립트와 콧수염 템플릿을 사용하여 json API의 데이터를 렌더링합니다. –

답변

4

콧수염은보기에 거의 지능을 허용하지 않습니다. 우려의 분리는 유스 케이스입니다.

다른 템플릿 엔진/라이브러리이지만 유일한 (실제) 차이점은 구문과 철학에 있습니다.

2

콧수염의 핵심은 논리가 없다는 것입니다. 잘 형식화 된 JSON을 전달하고 나머지는 매우 간단한 구문으로 처리합니다. 이것이 PHP와 다른 점은 if 문, else 절 또는 for 루프가 없다는 것입니다. 대신 태그 만 있습니다. 일부 태그는 값으로 대체되고, 일부 태그로는 대체되고, 일부 태그는 일련의 값으로 대체됩니다. 관리해야하는 배열이 여러 개가 아니라 설정하고 잊어 버린 페이지를 렌더링하는 자바 스크립트 객체 하나만 렌더링됩니다.

더 많은 정보/출처 : http://mustache.github.com/mustache.5.html

+1

사실 콧수염에 조건문과 루프가 있습니다. –

+0

"if 문, else 절 또는 for 루프가 없기 때문에"논리가없는 "코드라고 부릅니다. 대신 태그 만 있으면 일부 태그는 값으로 대체되고 일부 태그는 값으로 대체되고 다른 태그는 일련의 값으로 대체됩니다. 분명히이 시스템으로 모든 것을 달성 할 수 있습니다. 그렇지 않으면 사람들이 사용하지 않을 것입니다. 그러나 se마다 조건문이 없습니다. – swiecki

+1

귀하의 요지를 이해합니다. 그러나 저는 동료들과 Mustache가 우리의 팀을 Mustache 템플릿에서 쓰는 방법을 몰랐기 때문에 Mustache를 멀리하기 위해 노력했기 때문에 그 점을 지적합니다. "콧수염에 진술이나 루프가 없다"). 조건부 : {{# item.price}} $ {{item.가격}} {{/item.price}} {{^ item.price}} N/A {{/item.price}} 내가 무엇을 의미 . –

0

이전 응답이 대부분의 템플릿 엔진 부분 지문 및 서식 서버를 렌더링하는 데 사용 aften 반면 콧수염 같은 라이브러리와 전체 페이지 렌더링, 클라이언트 측 완료 사실을 생략 -측면.

이 라이브러리에서 볼 수있는 주요 사용 사례는 액세스 권한이없는 서버에서 제공되는 JSON 또는 XML 웹 서비스를 기반으로하는 웹 앱을 만드는 것입니다.

+0

콧수염은 템플릿 랭킹이며, Mustache.js는 단 하나의 구현입니다. * Mustache.js *를 사용하면 전체 페이지가 클라이언트 측 렌더링됩니다. 콧수염 (표준 Ruby 구현), 피스 테쉬, 콧수염, Mustache.php, 템플릿 콧수염, GRMustache, mustache.java, Nustache, jmustache, plustache, mustache.go, hige, mustang, Mustache.cfc, scalate, clostache , Milk, mustache4d, Mu, Hogan.js (또는 노드의 Mustache.js) 템플릿이 서버 측 렌더링됩니다. – bobthecow

+0

사실 내 답변은 JSON 백엔드가 제공하는 웹 응용 프로그램을 중심으로하는이 템플릿 시스템을 직접 사용하여 편향됩니다. 나는 서버 측 (서버가 일반적으로 응용 프로그램 논리에 사용됨)을 사용하는 것의 실제 이점을 보지 못했습니다. – Kirualex

0

나에게 콧수염의 주요 매력 중 하나는 거기에 너무 많은 구현이 있다는 것입니다.

간단한 예로, 제품 목록을 만들 수 있습니다.

  1. 서버 쪽 - 처음 25 개의 제품을로드합니다. Mustache의 서버 측 구현으로 제품을 렌더링하십시오.
  2. 클라이언트 측 - 사용자가 페이지를 아래로 스크롤하고 더 많은로드를 클릭합니다. 이 시점에서 Ajax 호출로 다른 제품을 가져 와서 JS 구현 인 Mustache로 렌더링합니다.

동일한 템플릿으로 클라이언트 측과 서버 측 모두를 재사용합니다. HTML을 변경해야하는 경우에는 한 곳에서만 수행하며 서버 쪽 렌더링 된 내용과 클라이언트 쪽 렌더링 된 내용 모두와 일치합니다.

관련 문제