தமிழ்

வெப் கம்ப்போனென்ட்கள் பற்றிய ஒரு முழுமையான வழிகாட்டி. இது அதன் நன்மைகள், செயல்படுத்தல் மற்றும் மறுபயன்பாட்டு UI கூறுகளை உருவாக்க இது எவ்வாறு உதவுகிறது என்பதை விளக்குகிறது.

வெப் கம்ப்போனென்ட்கள்: நவீன வலைக்கான மீண்டும் பயன்படுத்தக்கூடிய கூறுகளை உருவாக்குதல்

தொடர்ந்து மாறிவரும் வலை மேம்பாட்டு உலகில், மீண்டும் பயன்படுத்தக்கூடிய மற்றும் பராமரிக்கக்கூடிய கூறுகளின் தேவை மிக முக்கியமானது. வெப் கம்ப்போனென்ட்கள் ஒரு சக்திவாய்ந்த தீர்வை வழங்குகின்றன, டெவலப்பர்கள் வெவ்வேறு பிரேம்வர்க்குகள் மற்றும் தளங்களில் தடையின்றி வேலை செய்யும் தனிப்பயன் HTML கூறுகளை உருவாக்க உதவுகின்றன. இந்த விரிவான வழிகாட்டி வெப் கம்ப்போனென்ட்களின் கருத்துகள், நன்மைகள் மற்றும் செயல்படுத்தல் ஆகியவற்றை ஆராய்ந்து, வலுவான மற்றும் அளவிடக்கூடிய வலைப் பயன்பாடுகளை உருவாக்கத் தேவையான அறிவை உங்களுக்கு வழங்குகிறது.

வெப் கம்ப்போனென்ட்கள் என்றால் என்ன?

வெப் கம்ப்போனென்ட்கள் என்பவை வலைப் பக்கங்கள் மற்றும் வலைப் பயன்பாடுகளில் பயன்படுத்தக்கூடிய, மீண்டும் பயன்படுத்தக்கூடிய, இணைக்கப்பட்ட HTML குறிச்சொற்களை உருவாக்க உங்களை அனுமதிக்கும் வலைத் தரங்களின் தொகுப்பாகும். அவை அடிப்படையில் நீங்கள் பயன்படுத்தும் பிரேம்வர்க் அல்லது நூலகத்தைப் (எ.கா., React, Angular, Vue.js) பொருட்படுத்தாமல், அவற்றின் சொந்த செயல்பாடு மற்றும் ஸ்டைலிங் கொண்ட தனிப்பயன் HTML கூறுகளாகும். இது மீண்டும் பயன்படுத்துவதை ஊக்குவிக்கிறது மற்றும் குறியீடு நகலெடுப்பைக் குறைக்கிறது.

வெப் கம்ப்போனென்ட்களை உருவாக்கும் முக்கிய தொழில்நுட்பங்கள்:

வெப் கம்ப்போனென்ட்களைப் பயன்படுத்துவதன் நன்மைகள்

வெப் கம்ப்போனென்ட்களை ஏற்றுக்கொள்வது உங்கள் திட்டங்களுக்கு பல குறிப்பிடத்தக்க நன்மைகளை வழங்குகிறது:

உங்கள் முதல் வெப் கம்ப்போனென்ட்டை உருவாக்குதல்

ஒரு எளிய வெப் கம்ப்போனென்ட்டை உருவாக்குவதற்கான உதாரணத்தைப் பார்ப்போம்: ஒரு வாழ்த்தைக் காட்டும் தனிப்பயன் கூறு.

1. தனிப்பயன் கூறு வகுப்பை வரையறுத்தல்

முதலில், `HTMLElement`-ஐ விரிவுபடுத்தும் ஒரு ஜாவாஸ்கிரிப்ட் வகுப்பை நீங்கள் வரையறுக்க வேண்டும். இந்த வகுப்பு கூறின் தர்க்கம் மற்றும் ரெண்டரிங்கைக் கொண்டிருக்கும்:

class GreetingComponent extends HTMLElement {
  constructor() {
    super();

    // ஒரு ஷேடோ டாமை உருவாக்குங்கள்
    this.shadow = this.attachShadow({ mode: 'open' });
  }

  connectedCallback() {
    this.render();
  }

  render() {
    this.shadow.innerHTML = `
      <style>
        .greeting {
          color: blue;
          font-family: sans-serif;
        }
      </style>
      <div class="greeting">
        Hello, <slot>World</slot>!
      </div>
    `;
  }
}

விளக்கம்:

2. தனிப்பயன் கூறினை பதிவு செய்தல்

அடுத்து, `customElements.define()` ஐப் பயன்படுத்தி தனிப்பயன் கூறினை உலாவியில் பதிவு செய்ய வேண்டும்:

customElements.define('greeting-component', GreetingComponent);

விளக்கம்:

3. HTML-ல் வெப் கம்ப்போனென்ட்டைப் பயன்படுத்துதல்

இப்போது நீங்கள் உங்கள் புதிய வெப் கம்ப்போனென்ட்டை உங்கள் HTML-ல் வேறு எந்த HTML கூறு போலவும் பயன்படுத்தலாம்:

<greeting-component>User</greeting-component>

இது "Hello, User!" என்று ரெண்டர் செய்யும்.

நீங்கள் ஒரு ஸ்லாட் இல்லாமலும் இதைப் பயன்படுத்தலாம்:

<greeting-component></greeting-component>

இது "Hello, World!" என்று ரெண்டர் செய்யும் (ஏனென்றால் "World" என்பது ஸ்லாட்டின் இயல்புநிலை உள்ளடக்கம்).

ஷேடோ டாமைப் புரிந்துகொள்ளுதல்

ஷேடோ டாம் என்பது வெப் கம்ப்போனென்ட்களின் ஒரு முக்கிய அம்சமாகும். இது கூறிற்கு ஒரு தனி DOM மரத்தை உருவாக்குவதன் மூலம் இணைப்பை வழங்குகிறது. இதன் பொருள், ஷேடோ டாமிற்குள் வரையறுக்கப்பட்ட ஸ்டைல்கள் மற்றும் ஸ்கிரிப்ட்கள் முக்கிய ஆவணத்தைப் பாதிக்காது, மற்றும் நேர்மாறாகவும். இந்த தனிமைப்படுத்தல் பெயர் மோதல்களைத் தடுக்கிறது மற்றும் கூறுகள் கணிக்கக்கூடிய வகையில் செயல்படுவதை உறுதி செய்கிறது.

ஷேடோ டாமின் நன்மைகள்:

ஷேடோ டாம் முறைகள்:

மேலே உள்ள உதாரணம் `mode: 'open'` ஐப் பயன்படுத்தியது, ஏனெனில் இது பொதுவாக மிகவும் நடைமுறைக்குரிய தேர்வாகும், இது எளிதாக பிழைத்திருத்தம் மற்றும் சோதனை செய்ய அனுமதிக்கிறது.

HTML டெம்ப்ளேட்கள் மற்றும் ஸ்லாட்கள்

HTML டெம்ப்ளேட்கள்:

`<template>` கூறு, பக்கம் ஏற்றப்படும்போது ரெண்டர் செய்யப்படாத HTML துண்டுகளை வரையறுக்க ஒரு வழியை வழங்குகிறது. இந்த டெம்ப்ளேட்களை ஜாவாஸ்கிரிப்ட் பயன்படுத்தி நகலெடுத்து DOM-ல் செருகலாம். வெப் கம்ப்போனென்ட்களுக்குள் மீண்டும் பயன்படுத்தக்கூடிய UI கட்டமைப்புகளை வரையறுக்க டெம்ப்ளேட்கள் குறிப்பாக பயனுள்ளதாக இருக்கும்.

ஸ்லாட்கள்:

ஸ்லாட்கள் ஒரு வெப் கம்ப்போனென்ட்டிற்குள் உள்ள இடப்பிடிகளாகும், அவை பயனர்கள் கூறின் குறிப்பிட்ட பகுதிகளில் உள்ளடக்கத்தைச் செலுத்த அனுமதிக்கின்றன. அவை கூறின் தோற்றம் மற்றும் நடத்தையைத் தனிப்பயனாக்க ஒரு நெகிழ்வான வழியை வழங்குகின்றன. `<slot>` கூறு ஒரு ஸ்லாட்டை வரையறுக்கிறது, மேலும் கூறு ரெண்டர் செய்யப்படும்போது பயனரால் வழங்கப்படும் உள்ளடக்கம் அந்த ஸ்லாட்டில் செருகப்படுகிறது.

டெம்ப்ளேட் மற்றும் ஸ்லாட்களைப் பயன்படுத்தும் உதாரணம்:

<template id="my-template">
  <style>
    .container {
      border: 1px solid black;
      padding: 10px;
    }
  </style>
  <div class="container">
    <h2><slot name="title">Default Title</slot></h2>
    <p><slot>Default Content</slot></p>
  </div>
</template>

<script>
  class MyComponent extends HTMLElement {
    constructor() {
      super();
      this.shadow = this.attachShadow({ mode: 'open' });
      const template = document.getElementById('my-template');
      const content = template.content.cloneNode(true);
      this.shadow.appendChild(content);
    }
  }
  customElements.define('my-component', MyComponent);
</script>

<my-component>
  <span slot="title">Custom Title</span>
  <p>Custom Content</p>
</my-component>

இந்த எடுத்துக்காட்டில், `my-component` அதன் கட்டமைப்பை வரையறுக்க ஒரு டெம்ப்ளேட்டைப் பயன்படுத்துகிறது. இதில் இரண்டு ஸ்லாட்கள் உள்ளன: ஒன்று "title" என்று பெயரிடப்பட்டது மற்றும் ஒரு இயல்புநிலை ஸ்லாட். கூறின் பயனர் இந்த ஸ்லாட்களுக்கு உள்ளடக்கத்தை வழங்கலாம், அல்லது கூறு இயல்புநிலை உள்ளடக்கத்தைப் பயன்படுத்தும்.

மேம்பட்ட வெப் கம்ப்போனென்ட் நுட்பங்கள்

அடிப்படைகளுக்கு அப்பால், பல மேம்பட்ட நுட்பங்கள் உங்கள் வெப் கம்ப்போனென்ட்களை மேம்படுத்தும்:

உதாரணம்: பண்புக்கூறுகள் மற்றும் `attributeChangedCallback` ஐப் பயன்படுத்துதல்

class MyCard extends HTMLElement {
  static get observedAttributes() { return ['title', 'content']; }

  constructor() {
    super();
    this.shadow = this.attachShadow({ mode: 'open' });
  }

  connectedCallback() {
    this.render();
  }

  attributeChangedCallback(name, oldValue, newValue) {
    if (oldValue !== newValue) {
      this.render(); // பண்புக்கூறுகள் மாறும்போது மீண்டும் ரெண்டர் செய்யவும்
    }
  }

  render() {
    this.shadow.innerHTML = `
      <style>
        .card {
          border: 1px solid #ccc;
          padding: 10px;
          margin: 10px;
        }
      </style>
      <div class="card">
        <h2>${this.getAttribute('title') || 'Default Title'}</h2>
        <p>${this.getAttribute('content') || 'Default Content'}</p>
      </div>
    `;
  }
}

customElements.define('my-card', MyCard);

இந்த எடுத்துக்காட்டில், `MyCard` கூறு `title` மற்றும் `content` பண்புக்கூறுகளைக் கவனிக்கிறது. இந்தப் பண்புக்கூறுகள் மாறும்போது, `attributeChangedCallback` அழைக்கப்படுகிறது, இது பின்னர் கூறின் காட்சியைக் புதுப்பிக்க `render` முறையை அழைக்கிறது.

வெப் கம்ப்போனென்ட்கள் மற்றும் பிரேம்வர்க்குகள்

வெப் கம்ப்போனென்ட்கள் பிரேம்வர்க்-சார்பற்றவையாக வடிவமைக்கப்பட்டுள்ளன, அதாவது அவை எந்த ஜாவாஸ்கிரிப்ட் பிரேம்வர்க் அல்லது நூலகத்துடனும் பயன்படுத்தப்படலாம். இது வெவ்வேறு திட்டங்கள் மற்றும் அணிகளுக்கு இடையில் பகிரக்கூடிய மீண்டும் பயன்படுத்தக்கூடிய UI கூறுகளை உருவாக்குவதற்கான மதிப்புமிக்க கருவியாக அமைகிறது. வெவ்வேறு பிரேம்வர்க் சூழல்களில் வெப் கம்ப்போனென்ட்களை திறம்பட ஒருங்கிணைப்பது எப்படி என்பதைப் புரிந்துகொள்வதே முக்கியம்.

React உடன் வெப் கம்ப்போனென்ட்களைப் பயன்படுத்துதல்:

React வெப் கம்ப்போனென்ட்களை தடையின்றி இணைக்க முடியும். வேறு எந்த HTML கூறையும் பயன்படுத்துவது போலவே வெப் கம்ப்போனென்ட்டைப் பயன்படுத்தவும். இருப்பினும், React பண்புக்கூறுகள் மற்றும் நிகழ்வுகளை எவ்வாறு கையாள்கிறது என்பதில் கவனமாக இருங்கள். பெரும்பாலும், சிக்கலான தொடர்புகளுக்கு வெப் கம்ப்போனென்ட்டின் DOM முனையை நேரடியாக அணுக `ref` ஐப் பயன்படுத்த வேண்டியிருக்கும்.

Angular உடன் வெப் கம்ப்போனென்ட்களைப் பயன்படுத்துதல்:

Angular-ம் வெப் கம்ப்போனென்ட்களை ஆதரிக்கிறது. உங்கள் Angular திட்டத்தில் தனிப்பயன் கூறுகளைப் பயன்படுத்த அனுமதிக்க நீங்கள் உள்ளமைக்க வேண்டியிருக்கலாம். இது பொதுவாக உங்கள் மாட்யூலில் `CUSTOM_ELEMENTS_SCHEMA` ஐச் சேர்ப்பதை உள்ளடக்கியது. React ஐப் போலவே, அதன் DOM API மூலம் வெப் கம்ப்போனென்ட்டுடன் நீங்கள் தொடர்பு கொள்வீர்கள்.

Vue.js உடன் வெப் கம்ப்போனென்ட்களைப் பயன்படுத்துதல்:

Vue.js வெப் கம்ப்போனென்ட்களுக்கு நல்ல ஆதரவை வழங்குகிறது. உங்கள் Vue டெம்ப்ளேட்களில் நேரடியாக வெப் கம்ப்போனென்ட்களைப் பயன்படுத்தலாம். Vue.js பண்புக்கூறு மற்றும் நிகழ்வு பிணைப்பை நேட்டிவ் HTML கூறுகளுக்கு ஒத்த வழியில் கையாள்கிறது, இது ஒருங்கிணைப்பை ஒப்பீட்டளவில் எளிதாக்குகிறது.

வெப் கம்ப்போனென்ட் மேம்பாட்டிற்கான சிறந்த நடைமுறைகள்

உங்கள் வெப் கம்ப்போனென்ட்கள் வலுவானவை, பராமரிக்கக்கூடியவை மற்றும் மீண்டும் பயன்படுத்தக்கூடியவை என்பதை உறுதிப்படுத்த, இந்த சிறந்த நடைமுறைகளைப் பின்பற்றவும்:

வெப் கம்ப்போனென்ட் நூலகங்கள் மற்றும் ஆதாரங்கள்

பல நூலகங்கள் மற்றும் ஆதாரங்கள் வெப் கம்ப்போனென்ட் மேம்பாட்டில் நீங்கள் தொடங்குவதற்கு உதவும்:

முடிவுரை

வெப் கம்ப்போனென்ட்கள் நவீன வலைக்கு மீண்டும் பயன்படுத்தக்கூடிய UI கூறுகளை உருவாக்க ஒரு சக்திவாய்ந்த மற்றும் பல்துறை வழியை வழங்குகின்றன. தனிப்பயன் கூறுகள், ஷேடோ டாம் மற்றும் HTML டெம்ப்ளேட்களைப் பயன்படுத்துவதன் மூலம், நீங்கள் இணைக்கப்பட்ட, இயங்கக்கூடிய மற்றும் பராமரிக்கக்கூடிய கூறுகளை உருவாக்கலாம். நீங்கள் ஒரு பெரிய அளவிலான வலைப் பயன்பாட்டை உருவாக்கினாலும் அல்லது ஒரு எளிய வலைத்தளத்தை உருவாக்கினாலும், வெப் கம்ப்போனென்ட்கள் குறியீடு மறுபயன்பாட்டை மேம்படுத்தவும், சிக்கலைக் குறைக்கவும் மற்றும் நீண்ட கால பராமரிப்பை உறுதி செய்யவும் உதவும். வலைத் தரங்கள் தொடர்ந்து வளர்ந்து வருவதால், வெப் கம்ப்போனென்ட்கள் வலை மேம்பாட்டின் எதிர்காலத்தில் பெருகிய முறையில் முக்கிய பங்கு வகிக்க உள்ளன.