தமிழ்

பல்வேறு வலைப் பயன்பாடுகளில் மீண்டும் பயன்படுத்தக்கூடிய மற்றும் உள்ளடக்கப்பட்ட UI கூறுகளை உருவாக்க, வலைக் கூறுகளின் சக்தியை, குறிப்பாக தனிப்பயன் உறுப்புகளில் கவனம் செலுத்தி ஆராயுங்கள்.

வலைக் கூறுகள்: தனிப்பயன் உறுப்புகளில் ஒரு ஆழமான பார்வை

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

வலைக் கூறுகள் என்றால் என்ன?

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

தனிப்பயன் உறுப்புகளைப் புரிந்துகொள்ளுதல்

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

தனிப்பயன் உறுப்புகளை வரையறுத்தல்

ஒரு தனிப்பயன் உறுப்பை வரையறுக்க, நீங்கள் customElements.define() முறையைப் பயன்படுத்த வேண்டும். இந்த முறை இரண்டு வாதங்களை எடுக்கும்:

  1. உறுப்பு பெயர்: தனிப்பயன் உறுப்பின் பெயரைக் குறிக்கும் ஒரு சரம். நிலையான HTML உறுப்புகளுடன் முரண்பாடுகளைத் தவிர்க்க பெயரில் ஒரு சிறுகோடு (-) இருக்க வேண்டும். உதாரணமாக, my-element என்பது ஒரு சரியான பெயர், ஆனால் myelement என்பது இல்லை.
  2. உறுப்பு வகுப்பு: HTMLElement ஐ நீட்டிக்கும் மற்றும் தனிப்பயன் உறுப்பின் நடத்தையை வரையறுக்கும் ஒரு ஜாவாஸ்கிரிப்ட் வகுப்பு.

இதோ ஒரு அடிப்படை உதாரணம்:

class MyElement extends HTMLElement {
  constructor() {
    super();
    this.innerHTML = 'வணக்கம், உலகமே!';
  }
}

customElements.define('my-element', MyElement);

இந்த எடுத்துக்காட்டில், my-element என்ற பெயரில் ஒரு தனிப்பயன் உறுப்பை வரையறுக்கிறோம். MyElement வகுப்பு HTMLElement ஐ நீட்டிக்கிறது மற்றும் கன்ஸ்ட்ரக்டரில் உறுப்பின் உள் HTML-ஐ "வணக்கம், உலகமே!" என்று அமைக்கிறது.

தனிப்பயன் உறுப்பு வாழ்க்கைச் சுழற்சி கால்பேக்குகள்

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

வாழ்க்கைச் சுழற்சி கால்பேக்குகளின் பயன்பாட்டைக் காட்டும் ஒரு எடுத்துக்காட்டு இதோ:

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

  connectedCallback() {
    this.shadow.innerHTML = `

DOM-உடன் இணைக்கப்பட்டது!

`; console.log('உறுப்பு இணைக்கப்பட்டது'); } disconnectedCallback() { console.log('உறுப்பு துண்டிக்கப்பட்டது'); } static get observedAttributes() { return ['data-message']; } attributeChangedCallback(name, oldValue, newValue) { if (name === 'data-message') { this.shadow.innerHTML = `

${newValue}

`; } } } customElements.define('my-element', MyElement);

இந்த எடுத்துக்காட்டில், connectedCallback() ஒரு செய்தியை கன்சோலில் பதிவுசெய்து, DOM-உடன் இணைக்கப்படும்போது உறுப்பின் உள் HTML-ஐ அமைக்கிறது. உறுப்பு துண்டிக்கப்படும்போது disconnectedCallback() ஒரு செய்தியைப் பதிவுசெய்கிறது. data-message பண்புக்கூறு மாறும்போது attributeChangedCallback() அழைக்கப்படுகிறது, அதற்கேற்ப உறுப்பின் உள்ளடக்கத்தைப் புதுப்பிக்கிறது. observedAttributes கெட்டர் data-message பண்புக்கூறில் ஏற்படும் மாற்றங்களைக் கவனிக்க விரும்புகிறோம் என்பதைக் குறிப்பிடுகிறது.

உள்ளடக்கத்திற்கான நிழல் DOM-ஐப் பயன்படுத்துதல்

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

நிழல் DOM-ஐப் பயன்படுத்த, நீங்கள் உறுப்பில் attachShadow() முறையை அழைக்கலாம். இந்த முறை நிழல் DOM-ன் பயன்முறையைக் குறிப்பிடும் ஒரு விருப்பங்கள் பொருளை எடுக்கும். mode 'open' அல்லது 'closed' ஆக இருக்கலாம். பயன்முறை 'open' ஆக இருந்தால், உறுப்பின் shadowRoot பண்பைப் பயன்படுத்தி ஜாவாஸ்கிரிப்ட்டிலிருந்து நிழல் DOM-ஐ அணுகலாம். பயன்முறை 'closed' ஆக இருந்தால், ஜாவாஸ்கிரிப்ட்டிலிருந்து நிழல் DOM-ஐ அணுக முடியாது.

நிழல் DOM-ன் பயன்பாட்டைக் காட்டும் ஒரு எடுத்துக்காட்டு இதோ:

class MyElement extends HTMLElement {
  constructor() {
    super();
    this.shadow = this.attachShadow({ mode: 'open' });
    this.shadow.innerHTML = `
      
      

இது நிழல் DOM-க்குள் உள்ளது.

`; } } customElements.define('my-element', MyElement);

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

தனிப்பயன் உறுப்புகளைப் பயன்படுத்துவதன் நன்மைகள்

தனிப்பயன் உறுப்புகள் வலை மேம்பாட்டிற்கு பல நன்மைகளை வழங்குகின்றன:

தனிப்பயன் உறுப்புகளின் நடைமுறை எடுத்துக்காட்டுகள்

பொதுவான UI கூறுகளை உருவாக்க தனிப்பயன் உறுப்புகளை எவ்வாறு பயன்படுத்தலாம் என்பதற்கான சில நடைமுறை எடுத்துக்காட்டுகளை ஆராய்வோம்.

ஒரு எளிய கவுண்டர் கூறு

இந்த எடுத்துக்காட்டு தனிப்பயன் உறுப்புகளைப் பயன்படுத்தி ஒரு எளிய கவுண்டர் கூறை எவ்வாறு உருவாக்குவது என்பதைக் காட்டுகிறது.

class Counter extends HTMLElement {
  constructor() {
    super();
    this.shadow = this.attachShadow({ mode: 'open' });
    this._count = 0;
    this.render();
  }

  connectedCallback() {
    this.shadow.querySelector('.increment').addEventListener('click', () => {
      this.increment();
    });
    this.shadow.querySelector('.decrement').addEventListener('click', () => {
      this.decrement();
    });
  }

  increment() {
    this._count++;
    this.render();
  }

  decrement() {
    this._count--;
    this.render();
  }

  render() {
    this.shadow.innerHTML = `
      
      
${this._count}
`; } } customElements.define('my-counter', Counter);

இந்தக் குறியீடு HTMLElement ஐ நீட்டிக்கும் Counter வகுப்பை வரையறுக்கிறது. கன்ஸ்ட்ரக்டர் கூறைத் துவக்குகிறது, ஒரு நிழல் DOM-ஐ இணைக்கிறது, மற்றும் ஆரம்ப எண்ணிக்கையை 0 ஆக அமைக்கிறது. connectedCallback() முறை அதிகரிப்பு மற்றும் குறைப்பு பொத்தான்களுக்கு நிகழ்வு கேட்பவர்களைச் சேர்க்கிறது. increment() மற்றும் decrement() முறைகள் எண்ணிக்கையைப் புதுப்பித்து, கூறின் ரெண்டரிங்கைப் புதுப்பிக்க render() முறையை அழைக்கின்றன. render() முறை நிழல் DOM-ன் உள் HTML-ஐ கவுண்டர் காட்சி மற்றும் பொத்தான்களை உள்ளடக்குமாறு அமைக்கிறது.

ஒரு பட கரோசல் கூறு

இந்த எடுத்துக்காட்டு தனிப்பயன் உறுப்புகளைப் பயன்படுத்தி ஒரு பட கரோசல் கூறை எவ்வாறு உருவாக்குவது என்பதைக் காட்டுகிறது. சுருக்கத்திற்காக, பட மூலங்கள் ஒதுக்கிடங்களாக உள்ளன, மேலும் ஒரு API, ஒரு CMS அல்லது உள்ளூர் சேமிப்பகத்திலிருந்து மாறும் வகையில் ஏற்றப்படலாம். ஸ்டைலிங்கும் குறைக்கப்பட்டுள்ளது.

class ImageCarousel extends HTMLElement {
 constructor() {
  super();
  this.shadow = this.attachShadow({ mode: 'open' });
  this._images = [
  'https://via.placeholder.com/350x150',
  'https://via.placeholder.com/350x150/0077bb',
  'https://via.placeholder.com/350x150/00bb77',
  ];
  this._currentIndex = 0;
  this.render();
 }

 connectedCallback() {
  this.shadow.querySelector('.prev').addEventListener('click', () => {
  this.prevImage();
  });
  this.shadow.querySelector('.next').addEventListener('click', () => {
  this.nextImage();
  });
 }

 nextImage() {
  this._currentIndex = (this._currentIndex + 1) % this._images.length;
  this.render();
 }

 prevImage() {
  this._currentIndex = (this._currentIndex - 1 + this._images.length) % this._images.length;
  this.render();
 }

 render() {
  this.shadow.innerHTML = `
  
  
  `;
 }
}

customElements.define('image-carousel', ImageCarousel);

இந்தக் குறியீடு HTMLElement ஐ நீட்டிக்கும் ஒரு ImageCarousel வகுப்பை வரையறுக்கிறது. கன்ஸ்ட்ரக்டர் கூறைத் துவக்குகிறது, ஒரு நிழல் DOM-ஐ இணைக்கிறது, மற்றும் ஆரம்ப படங்கள் வரிசை மற்றும் தற்போதைய குறியீட்டை அமைக்கிறது. connectedCallback() முறை முந்தைய மற்றும் அடுத்த பொத்தான்களுக்கு நிகழ்வு கேட்பவர்களைச் சேர்க்கிறது. nextImage() மற்றும் prevImage() முறைகள் தற்போதைய குறியீட்டைப் புதுப்பித்து, கூறின் ரெண்டரிங்கைப் புதுப்பிக்க render() முறையை அழைக்கின்றன. render() முறை நிழல் DOM-ன் உள் HTML-ஐ தற்போதைய படம் மற்றும் பொத்தான்களை உள்ளடக்குமாறு அமைக்கிறது.

தனிப்பயன் உறுப்புகளுடன் பணிபுரிய சிறந்த நடைமுறைகள்

தனிப்பயன் உறுப்புகளுடன் பணிபுரியும்போது பின்பற்ற வேண்டிய சில சிறந்த நடைமுறைகள் இங்கே:

தனிப்பயன் உறுப்புகள் மற்றும் கட்டமைப்புகள்

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

React-ல் தனிப்பயன் உறுப்புகளைப் பயன்படுத்துதல்

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

import React, { useRef, useEffect } from 'react';

function MyComponent() {
  const myElementRef = useRef(null);

  useEffect(() => {
    if (myElementRef.current) {
      // தனிப்பயன் உறுப்பின் API-ஐ அணுகவும்
      myElementRef.current.addEventListener('custom-event', (event) => {
        console.log('தனிப்பயன் நிகழ்வு பெறப்பட்டது:', event.detail);
      });
    }
  }, []);

  return ;
}

export default MyComponent;

இந்த எடுத்துக்காட்டில், my-element தனிப்பயன் உறுப்பை அணுகவும் ಅದರಲ್ಲಿ ஒரு நிகழ்வு கேட்பவரைச் சேர்க்கவும் ஒரு ref-ஐப் பயன்படுத்துகிறோம். இது தனிப்பயன் உறுப்பால் அனுப்பப்பட்ட தனிப்பயன் நிகழ்வுகளைக் கேட்கவும் அதற்கேற்ப பதிலளிக்கவும் நம்மை அனுமதிக்கிறது.

Angular-ல் தனிப்பயன் உறுப்புகளைப் பயன்படுத்துதல்

Angular-ல் தனிப்பயன் உறுப்புகளைப் பயன்படுத்த, தனிப்பயன் உறுப்பை அங்கீகரிக்க Angular-ஐ உள்ளமைக்க வேண்டும். இது மாட்யூலின் உள்ளமைவில் உள்ள schemas வரிசையில் தனிப்பயன் உறுப்பைச் சேர்ப்பதன் மூலம் செய்யப்படலாம்.

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent],
  schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
export class AppModule { }

தனிப்பயன் உறுப்பு பதிவு செய்யப்பட்டவுடன், உங்கள் Angular டெம்ப்ளேட்டுகளில் அதை வேறு எந்த HTML உறுப்பையும் போலப் பயன்படுத்தலாம்.

Vue.js-ல் தனிப்பயன் உறுப்புகளைப் பயன்படுத்துதல்

Vue.js இயல்பாகவே தனிப்பயன் உறுப்புகளை ஆதரிக்கிறது. எந்தவொரு சிறப்பு உள்ளமைவும் இல்லாமல் உங்கள் டெம்ப்ளேட்டுகளில் அவற்றை நேரடியாகப் பயன்படுத்தலாம்.



Vue தானாகவே தனிப்பயன் உறுப்பை அங்கீகரித்து அதைச் சரியாக ரெண்டர் செய்யும்.

அணுகல்தன்மை பரிசீலனைகள்

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

சர்வதேசமயமாக்கல் மற்றும் உள்ளூர்மயமாக்கல்

உலகளாவிய பார்வையாளர்களுக்காக தனிப்பயன் உறுப்புகளை உருவாக்கும்போது, சர்வதேசமயமாக்கல் (i18n) மற்றும் உள்ளூர்மயமாக்கல் (l10n) ஆகியவற்றைக் கருத்தில் கொள்வது முக்கியம். இங்கே சில முக்கிய பரிசீலனைகள் உள்ளன:

முடிவுரை

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

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

வலைக் கூறுகள்: தனிப்பயன் உறுப்புகளில் ஒரு ஆழமான பார்வை | MLOG