> 웹 프론트엔드 > HTML 튜토리얼 > & lt; template & gt; 클라이언트 측 템플릿 요소?

& lt; template & gt; 클라이언트 측 템플릿 요소?

Robert Michael Kim
풀어 주다: 2025-03-20 18:02:21
원래의
349명이 탐색했습니다.

클라이언트 측 템플릿에

<template></template> 요소는 HTML5의 강력한 기능으로 HTML의 재사용 가능한 조각을 정의 할 수 있습니다. 이 조각들은 클라이언트 측 템플릿에 사용될 수 있으므로 개발자는 이러한 요소를 복제하고 조작하여 페이지를 다시로드하지 않고 동적 컨텐츠를 생성 할 수 있습니다. 사용 방법은 다음과 같습니다.

  1. 템플릿 정의 : 첫 번째 단계는 HTML 문서 내에서 <template></template> 요소를 만드는 것입니다. 이 요소 내부에는 재사용하려는 HTML 컨텐츠를 배치 할 수 있습니다. 예를 들어:

     <code class="html"><template id="myTemplate"> <div class="item"> <h2 class="name"></h2> <p class="description"></p> </div> </template></code>
    로그인 후 복사
  2. 템플릿 액세스 : 일단 정의되면 JavaScript를 사용하여 템플릿에 액세스 할 수 있습니다. id 로 템플릿을 선택한 다음 템플릿의 DOM 하위 트리가 포함 된 content 속성에 액세스하여이를 수행합니다.

     <code class="javascript">const template = document.getElementById('myTemplate'); const templateContent = template.content;</code>
    로그인 후 복사
  3. 템플릿 복제 : 템플릿을 사용하려면 내용을 복제하고 필요에 따라 조작하십시오. 클로닝은 모든 어린이 노드를 복제하는 cloneNode(true) 방법을 사용하여 수행 할 수 있습니다.

     <code class="javascript">const clone = document.importNode(templateContent, true);</code>
    로그인 후 복사
  4. 수정 및 삽입 : 복제 후 복제 된 컨텐츠 (예 : 동적 데이터 채우기)를 수정하고 원하는 위치에서 문서에 삽입 할 수 있습니다.

     <code class="javascript">// Assume 'data' is an object with 'name' and 'description' properties clone.querySelector('.name').textContent = data.name; clone.querySelector('.description').textContent = data.description; // Insert the clone into the DOM document.body.appendChild(clone);</code>
    로그인 후 복사

이 방법을 사용하면 HTML 구조를 깨끗하게 유지하고 컨텐츠를 표시하는 데 필요한 논리와 컨텐츠를 분리 할 수 ​​있습니다.

클라이언트 측 템플릿에

클라이언트 측 템플릿에 <template></template> 요소를 사용하면 몇 가지 주요 이점이 있습니다.

  1. 성능 : 템플릿은 필요할 때까지 렌더링되지 않으므로 초기 페이지로드 시간을 개선 할 수 있습니다. 브라우저는 <template></template> 요소의 내용을 렌더링하지 않기 때문에 불필요한 DOM 요소를 렌더링하는 데 시간을 낭비하지 않습니다.
  2. Semantic HTML : <template></template> 사용은 HTML 시맨틱을 유지하고 콘텐츠 구조를 표시되는 방법의 논리와 분리하여 코드가 더 관리하기 쉽고 이해하기 쉽게 할 수 있습니다.
  3. 재사용 성 : 템플릿을 사용하면 재사용 가능한 구성 요소를 생성 할 수 있습니다. 일단 정의되면, 템플릿은 HTML 코드를 반복하지 않고 여러 번 사용할 수 있으며, 따라서 건식 (자신을 반복하지 마십시오) 원칙을 고수합니다.
  4. 캡슐화 : <template></template> 요소의 내용이 렌더링되지 않으므로 개발자는 초기 레이아웃에 영향을 미치지 않고 UI 요소를 정의 할 수 있습니다. 이 캡슐화를 사용하면 복잡한 UI 상태를보다 쉽게 ​​관리 할 수 ​​있습니다.
  5. 프레임 워크 독립성 : <template></template> 요소는 특정 프레임 워크와 함께 사용되거나 사용되지 않으므로 다양한 개발 환경에 다재다능합니다.

클라이언트 측 템플릿을 위해

예, <template></template> 요소는 실제로 클라이언트 측 템플릿을위한 다양한 JavaScript 프레임 워크와 함께 사용할 수 있습니다. 몇 가지 예는 다음과 같습니다.

  1. 바닐라 JavaScript : 앞에서 설명한 것처럼 프레임 워크없이 Pure JavaScript를 사용하여 <template></template> 요소와 직접 상호 작용할 수 있습니다.
  2. React : React에는 고유 한 구성 요소를 관리하는 방법이 있지만 수명주기 메소드 또는 사용자 정의 후크 내에서
  3. vue.js : vue.js는 템플릿 시스템을 통해 <template></template> 요소에 대한 탁월한 지원을 제공합니다. Vue의 단일 파일 구성 요소는 종종 <template></template> 태그를 사용하는데,이 태그는 html <template></template> 요소와 혼동 될 수 있지만 개념적으로 비슷하게 작동합니다.
  4. Angular : Angular는 템플릿 시스템의 일부로 <template></template> 요소를 사용할 수 있으며 동적 컨텐츠를 생성하기 위해 Angular의 지침 및 구성 요소와 함께 사용될 수 있습니다.

각 프레임 워크에는 <template></template> 요소를 통합하고 조작하는 고유 한 방법이 있지만 템플릿 내용을 정의하고 복제하는 핵심 개념은 그에 따라 일관성이 유지됩니다.

클라이언트 측 템플릿에

<template></template> 요소를 사용할 때 성능 최적화 : 몇 가지 전략이 필요합니다.

  1. DOM 조작 최소화 : DOM 조작의 양을 줄이면 성능이 크게 향상 될 수 있습니다. 템플릿을 한 번 복제하고 DOM 외부의 클론을 수정 한 다음 삽입하십시오. 불필요한 재 렌즈 나 업데이트를 피하십시오.
  2. 문서 조각 사용 : DOM에 클론을 직접 추가하는 대신 DocumentFragment 에 추가 된 다음 한 번의 작업에서 DOM에 조각을 추가 할 수 있습니다.

     <code class="javascript">const fragment = document.createDocumentFragment(); // Append multiple clones to the fragment fragment.appendChild(clone1); fragment.appendChild(clone2); // Add the fragment to the DOM document.body.appendChild(fragment);</code>
    로그인 후 복사
  3. 배치 업데이트 : 여러 요소를 업데이트하거나 여러 템플릿을 복제하는 경우 이러한 작업을 배치하면 성능이 향상 될 수 있습니다. 업데이트를 대기하고 단일 작업에서 수행하십시오.
  4. 과도한 복제를 피하십시오 : 동일한 템플릿을 최소한의 변경으로 반복적으로 사용하는 경우, 단일 인스턴스를 생성하고 여러 번 복제하지 않고 제자리에 업데이트하십시오.
  5. 캐싱 클론 : 자주 사용되는 템플릿의 경우 템플릿의 복제 된 인스턴스를 캐시하고 원래 템플릿을 반복적으로 복제하는 대신이 캐시 된 버전을 조작 할 수 있습니다.
  6. 효율적인 선택기 사용 : 복제 된 템플릿 내에서 요소를 쿼리 할 때 효율적인 선택기 (예 : ID 또는 클래스)를 사용하여 요소를 찾고 업데이트하는 데 걸리는 시간을 최소화하십시오.

이러한 전략을 구현하면 <template></template> 요소를 사용하여 클라이언트 측 템플릿의 성능을 향상시켜 웹 애플리케이션이 빠르고 반응이 유지 될 수 있습니다.

위 내용은 & lt; template & gt; 클라이언트 측 템플릿 요소?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿