jQuery 핸들바(handlebars) 라이브러리 사용법

2023. 2. 8. 13:52·FE/javascript(jQuery)

 핸들바 (Handlebars)

- 스크립트 내에서 html을 용이하게 작성할 수 있는 템플릿 엔진이다.

- 코드의 재사용 및 유지 보수성을 향상시키며 jQuery와 같은 라이브러리와 함께 사용할 수 있다.

#사용법

1. handlebars 라이브러리 로드

- <head>태그 안, 제이쿼리 cdn 아래에 해당 코드를 작성한다

<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/3.0.1/handlebars.js"></script>

 

2. 템플릿 정의

-핸들바를 사용할 곳에 <script> 태그로 템플릿을 넣어준다 (type이 핸들바 템플릿으로 정해져 있음)

<script id="temp" type="text/x-handlebars-template">
<script id="temp" type="text/x-handlebars-template">
    <tr class="title">
        <td width="100">id</td>
        <td width="100">비밀번호</td>
        <td width="100">이름</td>
        <td width="100">직업</td>
        <td width="100">성별</td>
        <td width="300">취미</td>
        <td width="200">삭제/수정</td>
    </tr>
    {{#each .}}
    <tr class="row">
        <td>{{id}}</td>
        <td>{{pass}}</td>
        <td>{{name}}</td>
        <td>{{job}}</td>
        <td>{{gender}}</td>
        <td>{{hobby}}</td>
        <td>
            <button class="button del">삭제</button>
            <button class="button update">수정</button>
        </td>
    </tr>
    {{/each}} <!--마감태그-->
</script>

 

- 핸들바 안에서의 반복문은 {{#each}}를 사용하며.(마침표)를 입력 시 전체를 반복한다는 의미이다.

- 스크립트 내 배열 값을 가져올 때는 {{키네임}}으로 작성한다. (배열 키와 동일하게 넣어줌)

- 반복문의 마감태그는 {{each}}

** {{키네임}} 으로 감싸진 부분이 주입되는 데이터와 바인딩되는 부분이다.

** {{#each}} {{/each}} 사이에는 배열과 같은 타입의 데이터 길이가 들어와 길이만큼 작업을 반복 수행한다.

 

<script>

var users = [
        {id:'red',pass:'pass1',name:'홍길동',job:'프로그래머',gender:'남',hobby:['게임','영화감상','운동']},
        {id:'yellow',pass:'pass2',name:'심청이',job:'선생님',gender:'여',hobby:['춤','운동']},
        {id:'pink',pass:'pass3',name:'둘리',job:'개그맨',gender:'남',hobby:['게임','그림']},
    ];

list();

function list(){
        var temp = Handlebars.compile($("#temp").html());
        $("#list").html(temp(users));
 }

3. 데이터 정의

- 스크립트에서 목록출력을 위한 샘플데이터를 배열로 만들어 users에 담아둔다.

 

4. 템플릿 컴파일 & 렌더링

핸들바 템플릿 가져오기 var source = $("#temp").html();
핸들바 템플릿 컴파일 var temp = Handlebars.compile(source);
- 위 코드와 같이 source를 바로 대입해서 사용해도 된다.
템플릿 html에 삽입 $("#list).html(temp(users));

- html에서 script태그를 이용해 만든 템플릿(#temp)을 선택해서 핸들바를 컴파일한 뒤 temp변수에 담아준다.

- 템플릿에서 만든 temp의 users를 list에 넣어 출력한다.

** 아래 스크립트에서 만든 users와 핸들바를 이용해 반복해 만든 객체가 동일해야 한다. (배열 키 개수와 이름)

'FE > javascript(jQuery)' 카테고리의 다른 글

JQuery 게시판 페이지 (핸들바, ajax의 json데이터 사용, 벡틱 기호 ``)  (0) 2023.02.11
JQuery의 $.Ajax메소드 사용법 및 Json데이터  (0) 2023.02.08
JavaScript (JQuery) 이용한 주소 관리 프로그램 [등록/삭제]  (0) 2023.02.03
JavaScript Bingo game source code - 자바스크립트 빙고게임 코드  (0) 2022.12.31
JavaScript Bingo game - 자바스크립트로 만든 빙고 게임 (색칠하기)  (0) 2022.12.31
'FE/javascript(jQuery)' 카테고리의 다른 글
  • JQuery 게시판 페이지 (핸들바, ajax의 json데이터 사용, 벡틱 기호 ``)
  • JQuery의 $.Ajax메소드 사용법 및 Json데이터
  • JavaScript (JQuery) 이용한 주소 관리 프로그램 [등록/삭제]
  • JavaScript Bingo game source code - 자바스크립트 빙고게임 코드
시녜's
시녜's
성장중인 새싹 개발자 🌱
  • 시녜's
    개발기록
    시녜's
  • 전체
    오늘
    어제
    • 분류 전체보기
      • FE
        • React
        • javascript(jQuery)
        • HTML & CSS
      • BE
        • Java [Servlet , Spring]
        • C & C++
        • Node.js
        • node.js
        • SQL (Oracle, mysql)
      • CS
        • 프로그래밍 이론(정보처리기사)
      • Etc
        • 코딩 챌린지
        • 개발 성장 일지
        • 코딩테스트
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스프링
    코딩기초
    코딩입문
    자바문자열
    백준문제풀이
    javascript
    리액트
    자바배열
    자바
    백준브론즈
    mysql
    html
    제이쿼리
    자바조건문
    jsp
    백준코딩테스트
    자바스크립트
    코테기초
    백준
    React
    jquery
    코테
    코딩테스트입문
    백준단계별문제
    코딩테스트
    Java
    자바반복문
    CharAt함수
    자바기초
    프로그래밍
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
시녜's
jQuery 핸들바(handlebars) 라이브러리 사용법
상단으로

티스토리툴바