ആധുനിക ടീമുകൾക്കായി, വികസിപ്പിക്കാവുന്നതും ഫ്രെയിംവർക്ക്-സ്വതന്ത്രവുമായ വെബ് കോമ്പോണൻ്റ് ഇൻഫ്രാസ്ട്രക്ചർ രൂപകൽപ്പന ചെയ്യാനും, നിർമ്മിക്കാനും, പരീക്ഷിക്കാനും, വിന്യസിക്കാനുമുള്ള സമഗ്ര രൂപരേഖ.
വെബ് കോമ്പോണൻ്റ് ഇൻഫ്രാസ്ട്രക്ചർ: ആഗോള സംരംഭങ്ങൾക്കായുള്ള സമ്പൂർണ്ണ നടപ്പാക്കൽ ഗൈഡ്
വെബ് വികസനത്തിൻ്റെ നിരന്തരം മാറിക്കൊണ്ടിരിക്കുന്ന ലോകത്ത്, സ്ഥിരവും വികസിപ്പിക്കാവുന്നതും ഭാവിയിലേക്ക് അനുയോജ്യമായതുമായ ഫ്രണ്ടെൻഡ് ആർക്കിടെക്ചർ കണ്ടെത്തുന്നത് ഒരു വെല്ലുവിളിയാണ്. ഫ്രെയിംവർക്കുകൾ വരികയും പോകുകയും ചെയ്യുന്നു, വികസന ടീമുകൾ വളരുകയും വൈവിധ്യവൽക്കരിക്കപ്പെടുകയും ചെയ്യുന്നു, ഉൽപ്പന്ന പോർട്ട്ഫോളിയോകൾ വിവിധ സാങ്കേതികവിദ്യകളിലുടനീളം വികസിക്കുന്നു. ഒരു ഏകീകൃത സാങ്കേതികവിദ്യയിൽ കുടുങ്ങാതെ, വലിയ സ്ഥാപനങ്ങൾക്ക് എങ്ങനെ ഒരു ഏകീകൃത ഉപയോക്തൃ അനുഭവം സൃഷ്ടിക്കാനും വികസനം ലളിതമാക്കാനും കഴിയും? ഇതിനുള്ള ഉത്തരം ഒരു കരുത്തുറ്റ വെബ് കോമ്പോണൻ്റ് ഇൻഫ്രാസ്ട്രക്ചർ നിർമ്മിക്കുന്നതിലാണ്.
ഇത് കുറച്ച് പുനരുപയോഗിക്കാവുന്ന കോമ്പോണൻ്റുകൾ എഴുതുന്നതിനെക്കുറിച്ചല്ല. ഇത് ഒരു സമ്പൂർണ്ണ ആവാസവ്യവസ്ഥയെക്കുറിച്ചാണ്—ആഗോള തലത്തിൽ ടീമുകളെ ഉയർന്ന നിലവാരമുള്ളതും സ്ഥിരതയുള്ളതും പരസ്പരം പ്രവർത്തിക്കുന്നതുമായ യൂസർ ഇൻ്റർഫേസുകൾ നിർമ്മിക്കാൻ പ്രാപ്തരാക്കുന്ന ഉപകരണങ്ങളുടെയും പ്രക്രിയകളുടെയും മാനദണ്ഡങ്ങളുടെയും ഒരു യോജിപ്പിച്ച യന്ത്രം. വാസ്തുവിദ്യയുടെ രൂപകൽപ്പന മുതൽ വിന്യാസം, ഭരണം വരെ അത്തരമൊരു ഇൻഫ്രാസ്ട്രക്ചർ നടപ്പിലാക്കുന്നതിനുള്ള ഒരു സമ്പൂർണ്ണ രൂപരേഖ ഈ ഗൈഡ് നൽകുന്നു.
താത്വികമായ അടിത്തറ: വെബ് കോമ്പോണൻ്റുകളിൽ എന്തിന് നിക്ഷേപിക്കണം?
സാങ്കേതിക നിർവ്വഹണത്തിലേക്ക് കടക്കുന്നതിന് മുമ്പ്, വെബ് കോമ്പോണൻ്റുകളുടെ തന്ത്രപരമായ മൂല്യം മനസ്സിലാക്കേണ്ടത് നിർണായകമാണ്. അവ വെറുമൊരു ഫ്രണ്ടെൻഡ് ട്രെൻഡ് മാത്രമല്ല; അവ W3C സ്റ്റാൻഡേർഡ് ചെയ്ത വെബ് പ്ലാറ്റ്ഫോം API-കളുടെ ഒരു കൂട്ടമാണ്, അത് പുതിയ, പൂർണ്ണമായി എൻക്യാപ്സുലേറ്റ് ചെയ്ത HTML ടാഗുകൾ സൃഷ്ടിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഈ അടിത്തറ ഏതൊരു വലിയ സംരംഭത്തിനും മൂന്ന് പരിവർത്തനപരമായ നേട്ടങ്ങൾ നൽകുന്നു.
1. യഥാർത്ഥ പരസ്പര പ്രവർത്തനക്ഷമതയും ഫ്രെയിംവർക്ക്-അജ്ഞേയതയും
തങ്ങളുടെ പ്രാഥമിക ഇ-കൊമേഴ്സ് സൈറ്റിനായി റിയാക്റ്റും, ഒരു ആന്തരിക സിആർഎമ്മിനായി ആംഗുലാറും, ഒരു മാർക്കറ്റിംഗ് മൈക്രോസൈറ്റിനായി Vue.js ഉം ഉപയോഗിക്കുന്ന ടീമുകളുള്ള ഒരു ആഗോള കമ്പനിയെ സങ്കൽപ്പിക്കുക, മറ്റൊരു ടീം Svelte ഉപയോഗിച്ച് പ്രോട്ടോടൈപ്പ് ചെയ്യുന്നു. റിയാക്റ്റിൽ നിർമ്മിച്ച ഒരു പരമ്പരാഗത കോമ്പോണൻ്റ് ലൈബ്രറി മറ്റ് ടീമുകൾക്ക് പ്രയോജനകരമല്ല. വെബ് കോമ്പോണൻ്റുകൾ ഈ വേർതിരിവുകളെ തകർക്കുന്നു. ബ്രൗസർ മാനദണ്ഡങ്ങളെ അടിസ്ഥാനമാക്കിയുള്ളതുകൊണ്ട്, ഒരു വെബ് കോമ്പോണൻ്റ് ഏതൊരു ഫ്രെയിംവർക്കിലും - അല്ലെങ്കിൽ ഫ്രെയിംവർക്ക് ഇല്ലാതെയും - സ്വാഭാവികമായി ഉപയോഗിക്കാൻ കഴിയും. ഇതാണ് ആത്യന്തികമായ വാഗ്ദാനം: ഒരിക്കൽ എഴുതുക, എല്ലായിടത്തും പ്രവർത്തിപ്പിക്കുക.
2. നിങ്ങളുടെ ഡിജിറ്റൽ ആസ്തികളെ ഭാവിയിലേക്ക് സജ്ജമാക്കുന്നു
ഫ്രണ്ടെൻഡ് ലോകം 'ഫ്രെയിംവർക്ക് ചുരുൾ' എന്ന പ്രശ്നം നേരിടുന്നു. ഇന്ന് പ്രചാരത്തിലുള്ള ഒരു ലൈബ്രറി നാളെ കാലഹരണപ്പെട്ടേക്കാം. നിങ്ങളുടെ മുഴുവൻ UI ലൈബ്രറിയും ഒരു പ്രത്യേക ഫ്രെയിംവർക്കുമായി ബന്ധിപ്പിക്കുന്നത് ഭാവിയിൽ ചെലവേറിയതും വേദനാജനകവുമായ മൈഗ്രേഷനുകൾക്ക് നിങ്ങളെ വിധേയമാക്കും. വെബ് കോമ്പോണൻ്റുകൾ, ഒരു ബ്രൗസർ സ്റ്റാൻഡേർഡ് ആയതുകൊണ്ട്, HTML, CSS, JavaScript എന്നിവയുടെ ദീർഘായുസ്സ് ഉണ്ട്. ഇന്ന് ഒരു വെബ് കോമ്പോണൻ്റ് ലൈബ്രറിയിൽ നടത്തുന്ന നിക്ഷേപം, ഒരു ദശാബ്ദമോ അതിലധികമോ കാലം മൂല്യവത്തായി നിലനിൽക്കുന്ന ഒരു നിക്ഷേപമാണ്, ഏതൊരു ഒറ്റ ജാവാസ്ക്രിപ്റ്റ് ഫ്രെയിംവർക്കിൻ്റെയും ആയുസ്സിനെ അതിജീവിക്കും.
3. ഷാഡോ DOM ഉപയോഗിച്ച് തകർക്കാൻ കഴിയാത്ത എൻക്യാപ്സുലേഷൻ
ഒരു ആപ്ലിക്കേഷൻ്റെ ഒരു ഭാഗത്തെ ആഗോള CSS മാറ്റം അബദ്ധവശാൽ മറ്റൊരു ഭാഗത്തെ UI തകർക്കുന്നത് എത്ര തവണ സംഭവിച്ചിട്ടുണ്ട്? വെബ് കോമ്പോണൻ്റ് സ്പെസിഫിക്കേഷൻ്റെ ഒരു പ്രധാന ഭാഗമായ ഷാഡോ DOM ഇത് പരിഹരിക്കുന്നു. ഇത് നിങ്ങളുടെ കോമ്പോണൻ്റിനായി അതിൻ്റേതായ സ്കോപ്പ് ചെയ്ത സ്റ്റൈലുകളും സ്ക്രിപ്റ്റുകളും ഉൾപ്പെടെ ഒരു സ്വകാര്യ, എൻക്യാപ്സുലേറ്റ് ചെയ്ത DOM ട്രീ നൽകുന്നു. ഇതിനർത്ഥം ഒരു കോമ്പോണൻ്റിൻ്റെ ആന്തരിക ഘടനയും സ്റ്റൈലിംഗും പുറം ലോകത്ത് നിന്ന് സംരക്ഷിക്കപ്പെടുന്നു എന്നാണ്, അത് എവിടെ വെച്ചാലും രൂപകൽപ്പന ചെയ്തതുപോലെ കാണുകയും പ്രവർത്തിക്കുകയും ചെയ്യുമെന്ന് ഇത് ഉറപ്പുനൽകുന്നു. ഈ തലത്തിലുള്ള എൻക്യാപ്സുലേഷൻ വലിയ, സങ്കീർണ്ണമായ ആപ്ലിക്കേഷനുകളിൽ സ്ഥിരത നിലനിർത്തുന്നതിനും ബഗുകൾ തടയുന്നതിനും ഒരു മികച്ച മാറ്റമാണ്.
വാസ്തുവിദ്യാപരമായ രൂപരേഖ: നിങ്ങളുടെ ഇൻഫ്രാസ്ട്രക്ചർ രൂപകൽപ്പന ചെയ്യുന്നു
വിജയകരമായ ഒരു വെബ് കോമ്പോണൻ്റ് ഇൻഫ്രാസ്ട്രക്ചർ വെറും കോമ്പോണൻ്റുകളുടെ ഒരു ഫോൾഡറിനേക്കാൾ കൂടുതലാണ്. ഇത് പരസ്പരം ബന്ധിപ്പിച്ച ഭാഗങ്ങളുള്ള ശ്രദ്ധാപൂർവ്വം രൂപകൽപ്പന ചെയ്ത ഒരു സിസ്റ്റമാണ്. ഈ സങ്കീർണ്ണത കൈകാര്യം ചെയ്യുന്നതിനായി ഒരു മോണോറെപ്പോ സമീപനം (Nx, Turborepo, Lerna പോലുള്ള ഉപകരണങ്ങൾ ഉപയോഗിച്ച്) ഞങ്ങൾ വളരെ ശുപാർശ ചെയ്യുന്നു, കാരണം ഇത് ഡിപൻഡൻസി മാനേജ്മെൻ്റ് ലളിതമാക്കുകയും ക്രോസ്-പാക്കേജ് മാറ്റങ്ങൾ കാര്യക്ഷമമാക്കുകയും ചെയ്യുന്നു.
നിങ്ങളുടെ മോണോറെപ്പോയിലെ പ്രധാന പാക്കേജുകൾ
- ഡിസൈൻ ടോക്കണുകൾ: നിങ്ങളുടെ വിഷ്വൽ ഭാഷയുടെ അടിത്തറ. ഈ പാക്കേജിൽ കോമ്പോണൻ്റുകൾ ഒന്നും അടങ്ങിയിരിക്കരുത്. പകരം, ഇത് ഡിസൈൻ തീരുമാനങ്ങളെ ഡാറ്റയായി (ഉദാഹരണത്തിന്, JSON അല്ലെങ്കിൽ YAML ഫോർമാറ്റിൽ) എക്സ്പോർട്ട് ചെയ്യുന്നു. നിറങ്ങൾ, ടൈപ്പോഗ്രാഫി സ്കെയിലുകൾ, സ്പേസിംഗ് യൂണിറ്റുകൾ, ആനിമേഷൻ സമയങ്ങൾ എന്നിവയെക്കുറിച്ച് ചിന്തിക്കുക. സ്റ്റൈൽ ഡിക്ഷണറി പോലുള്ള ഉപകരണങ്ങൾക്ക് ഈ ടോക്കണുകളെ വിവിധ ഫോർമാറ്റുകളിലേക്ക് (CSS കസ്റ്റം പ്രോപ്പർട്ടികൾ, Sass വേരിയബിളുകൾ, ജാവാസ്ക്രിപ്റ്റ് കോൺസ്റ്റൻ്റുകൾ) ഏതൊരു പ്രോജക്റ്റിനും ഉപയോഗിക്കാവുന്ന തരത്തിൽ കംപൈൽ ചെയ്യാൻ കഴിയും.
- പ്രധാന കോമ്പോണൻ്റ് ലൈബ്രറി: യഥാർത്ഥ വെബ് കോമ്പോണൻ്റുകൾ നിലനിൽക്കുന്ന സിസ്റ്റത്തിൻ്റെ ഹൃദയമാണിത്. അവ ഫ്രെയിംവർക്ക്-അജ്ഞേയമായി നിർമ്മിക്കുകയും അവയുടെ സ്റ്റൈലിംഗിനായി ഡിസൈൻ ടോക്കണുകൾ (സാധാരണയായി CSS കസ്റ്റം പ്രോപ്പർട്ടികൾ വഴി) ഉപയോഗിക്കുകയും ചെയ്യുന്നു.
- ഫ്രെയിംവർക്ക് റാപ്പറുകൾ (ഓപ്ഷണൽ എന്നാൽ ശുപാർശ ചെയ്യുന്നത്): വെബ് കോമ്പോണൻ്റുകൾ ഫ്രെയിംവർക്കുകളിൽ നേരിട്ട് പ്രവർത്തിക്കുമെങ്കിലും, ഡെവലപ്പർ അനുഭവം ചിലപ്പോൾ വിചിത്രമായിരിക്കും, പ്രത്യേകിച്ച് ഇവൻ്റ് കൈകാര്യം ചെയ്യുമ്പോഴോ സങ്കീർണ്ണമായ ഡാറ്റാ ടൈപ്പുകൾ കൈമാറുമ്പോഴോ. നേർത്ത റാപ്പർ പാക്കേജുകൾ (ഉദാഹരണത്തിന്, `my-components-react`, `my-components-vue`) സൃഷ്ടിക്കുന്നത് ഈ വിടവ് നികത്താൻ സഹായിക്കും, ഇത് കോമ്പോണൻ്റുകളെ ഫ്രെയിംവർക്കിൻ്റെ ആവാസവ്യവസ്ഥയ്ക്ക് പൂർണ്ണമായി അനുയോജ്യമാക്കും. ചില വെബ് കോമ്പോണൻ്റ് കംപൈലറുകൾക്ക് ഇത് യാന്ത്രികമായി സൃഷ്ടിക്കാൻ കഴിയും.
- ഡോക്യുമെൻ്റേഷൻ സൈറ്റ്: മികച്ച ഡോക്യുമെൻ്റേഷൻ ഇല്ലാത്ത ലോകോത്തര കോമ്പോണൻ്റ് ലൈബ്രറി പ്രയോജനമില്ലാത്തതാണ്. ഡെവലപ്പർമാർക്കുള്ള കേന്ദ്രീകൃത ഹബ്ബായി വർത്തിക്കുന്ന ഒരു സ്റ്റാൻഡ്-എലോൺ ആപ്ലിക്കേഷനാണിത് (ഉദാഹരണത്തിന്, സ്റ്റോറിബുക്ക്, ഡോക്കസോറസ്, അല്ലെങ്കിൽ ഒരു കസ്റ്റം Next.js ആപ്പ് ഉപയോഗിച്ച് നിർമ്മിച്ചത്). ഇതിൽ സംവേദനാത്മക പ്ലേഗ്രൗണ്ടുകൾ, API ഡോക്യുമെൻ്റേഷൻ (പ്രോപ്സ്, ഇവൻ്റുകൾ, സ്ലോട്ടുകൾ), ഉപയോഗ മാർഗ്ഗനിർദ്ദേശങ്ങൾ, പ്രവേശനക്ഷമതാ കുറിപ്പുകൾ, ഡിസൈൻ തത്വങ്ങൾ എന്നിവ ഉണ്ടായിരിക്കണം.
നിങ്ങളുടെ ഉപകരണങ്ങൾ തിരഞ്ഞെടുക്കുന്നു: ആധുനിക വെബ് കോമ്പോണൻ്റ് സ്റ്റാക്ക്
നിങ്ങൾക്ക് വാനില ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് വെബ് കോമ്പോണൻ്റുകൾ എഴുതാൻ കഴിയുമെങ്കിലും, ഒരു സമർപ്പിത ലൈബ്രറിയോ കംപൈലറോ ഉപയോഗിക്കുന്നത് ഉൽപ്പാദനക്ഷമത, പ്രകടനം, പരിപാലനം എന്നിവ ഗണ്യമായി മെച്ചപ്പെടുത്തുന്നു.
ഓഥറിംഗ് ലൈബ്രറികളും കംപൈലറുകളും
- ലിറ്റ്: വെബ് കോമ്പോണൻ്റുകൾ നിർമ്മിക്കുന്നതിനായി ഗൂഗിളിൽ നിന്നുള്ള ലളിതവും ഭാരം കുറഞ്ഞതും വേഗതയേറിയതുമായ ഒരു ലൈബ്രറി. റെൻഡറിംഗിനായി ജാവാസ്ക്രിപ്റ്റ് ടാഗ് ചെയ്ത ടെംപ്ലേറ്റ് ലിറ്ററൽസ് ഉപയോഗിച്ച് ഇത് വൃത്തിയുള്ള, ഡിക്ലറേറ്റീവ് API നൽകുന്നു. ഇതിൻ്റെ കുറഞ്ഞ ഓവർഹെഡ് പ്രകടനത്തിന് പ്രാധാന്യമുള്ള ആപ്ലിക്കേഷനുകൾക്ക് ഇത് മികച്ച തിരഞ്ഞെടുപ്പാക്കുന്നു.
- സ്റ്റെൻസിൽ.ജെഎസ്: സ്റ്റാൻഡേർഡ്-കംപ്ലയൻ്റ് വെബ് കോമ്പോണൻ്റുകൾ സൃഷ്ടിക്കുന്ന ഒരു ശക്തമായ കംപൈലർ. JSX, ടൈപ്പ്സ്ക്രിപ്റ്റ് പിന്തുണ, കാര്യക്ഷമമായ റെൻഡറിംഗിനായുള്ള വെർച്വൽ DOM, പ്രീ-റെൻഡറിംഗ് (SSR), ഫ്രെയിംവർക്ക് റാപ്പറുകളുടെ ഓട്ടോമാറ്റിക് ജനറേഷൻ എന്നിവ പോലുള്ള സവിശേഷതകളോടെ സ്റ്റെൻസിൽ ഒരു ഫ്രെയിംവർക്ക് പോലുള്ള അനുഭവം നൽകുന്നു. സമഗ്രമായ ഒരു എൻ്റർപ്രൈസ് ഇൻഫ്രാസ്ട്രക്ചറിന്, സ്റ്റെൻസിൽ പലപ്പോഴും മികച്ചൊരു ഓപ്ഷനാണ്.
- വാനില ജാവാസ്ക്രിപ്റ്റ്: ഏറ്റവും ശുദ്ധമായ സമീപനം. ഇത് നിങ്ങൾക്ക് പൂർണ്ണ നിയന്ത്രണം നൽകുകയും പൂജ്യം ഡിപൻഡൻസികൾ നൽകുകയും ചെയ്യുന്നു, എന്നാൽ പ്രോപ്പർട്ടികൾ, ആട്രിബ്യൂട്ടുകൾ, കോമ്പോണൻ്റ് ലൈഫ്സൈക്കിൾ കോൾബാക്കുകൾ എന്നിവ കൈകാര്യം ചെയ്യുന്നതിന് കൂടുതൽ ബോയിലർപ്ലേറ്റ് കോഡ് എഴുതേണ്ടതുണ്ട്. ഇത് ഒരു മികച്ച പഠന ഉപകരണമാണ്, എന്നാൽ വലിയ തോതിലുള്ള ലൈബ്രറികൾക്ക് അത്ര കാര്യക്ഷമമല്ല.
സ്റ്റൈലിംഗ് തന്ത്രങ്ങൾ
എൻക്യാപ്സുലേറ്റ് ചെയ്ത ഷാഡോ DOM-നുള്ളിൽ സ്റ്റൈലിംഗ് ചെയ്യുന്നതിന് വ്യത്യസ്തമായ ഒരു ചിന്താഗതി ആവശ്യമാണ്.
- CSS കസ്റ്റം പ്രോപ്പർട്ടികൾ: തീമിംഗിനായുള്ള പ്രാഥമിക സംവിധാനമാണിത്. നിങ്ങളുടെ ഡിസൈൻ ടോക്കൺസ് പാക്കേജ് ടോക്കണുകളെ കസ്റ്റം പ്രോപ്പർട്ടികളായി (ഉദാഹരണത്തിന്, `--color-primary`) എക്സ്പോസ് ചെയ്യണം. കോമ്പോണൻ്റുകൾ ഈ വേരിയബിളുകൾ (`background-color: var(--color-primary)`) ഉപയോഗിക്കുന്നു, ഇത് ഉയർന്ന തലത്തിൽ പ്രോപ്പർട്ടികൾ പുനർനിർവചിച്ച് കോമ്പോണൻ്റുകൾക്ക് എളുപ്പത്തിൽ തീം നൽകാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്നു.
- CSS ഷാഡോ ഭാഗങ്ങൾ (`::part`): ഷാഡോ DOM ഒരു കാരണത്താൽ എൻക്യാപ്സുലേറ്റ് ചെയ്തിരിക്കുന്നു, എന്നാൽ ചിലപ്പോൾ ഉപയോക്താക്കൾക്ക് ഒരു കോമ്പോണൻ്റിൻ്റെ ഒരു പ്രത്യേക ആന്തരിക ഘടകം സ്റ്റൈൽ ചെയ്യേണ്ടതുണ്ട്. `::part()` സ്യൂഡോ-എലമെൻ്റ് ഷാഡോ ബൗണ്ടറി തകർക്കാൻ നിയന്ത്രിതവും വ്യക്തവുമായ ഒരു മാർഗ്ഗം നൽകുന്നു. കോമ്പോണൻ്റ് രചയിതാവ് ഒരു ഭാഗം എക്സ്പോസ് ചെയ്യുന്നു (ഉദാഹരണത്തിന്, `
നടപ്പാക്കൽ ആഴത്തിൽ: ഒരു എൻ്റർപ്രൈസ്-റെഡി ബട്ടൺ നിർമ്മിക്കുന്നു
ഇത് വ്യക്തമാക്കാം. ഒരു സ്റ്റെൻസിൽ.ജെഎസ് പോലുള്ള ടൂൾചെയിൻ അനുമാനിച്ചുകൊണ്ട്, `
1. പബ്ലിക് API നിർവചിക്കുന്നു (പ്രോപ്പർട്ടികളും ആട്രിബ്യൂട്ടുകളും)
ആദ്യം, പ്രോപ്പർട്ടികൾ ഉപയോഗിച്ച് കോമ്പോണൻ്റിൻ്റെ API നിർവചിക്കുക. ഈ പ്രോപ്പർട്ടികൾ എങ്ങനെ പ്രവർത്തിക്കുന്നു എന്ന് പ്രഖ്യാപിക്കാൻ പലപ്പോഴും ഡെക്കറേറ്ററുകൾ ഉപയോഗിക്കാറുണ്ട്.
// ഒരു സ്റ്റെൻസിൽ.ജെഎസ് പോലുള്ള സിൻ്റാക്സ് ഉപയോഗിച്ച് @Prop() variant: 'primary' | 'secondary' | 'ghost' = 'primary'; @Prop() size: 'small' | 'medium' | 'large' = 'medium'; @Prop() disabled: boolean = false; @Prop({ reflect: true }) iconOnly: boolean = false; // reflect: true പ്രോപ്പിനെ ഒരു HTML ആട്രിബ്യൂട്ടിലേക്ക് സമന്വയിപ്പിക്കുന്നു
2. ഉപയോക്തൃ ഇടപെടലുകൾ കൈകാര്യം ചെയ്യുന്നു (ഇവൻ്റുകൾ)
കോമ്പോണൻ്റുകൾ സ്റ്റാൻഡേർഡ് DOM ഇവൻ്റുകൾ വഴി പുറം ലോകവുമായി ആശയവിനിമയം നടത്തണം. പ്രൊപ്രൈറ്ററി കോൾബാക്കുകൾ ഒഴിവാക്കുക. കസ്റ്റം ഇവൻ്റുകൾ ഡിസ്പാച്ച് ചെയ്യാൻ ഒരു ഇവൻ്റ് എമിറ്റർ ഉപയോഗിക്കുക.
@Event() myClick: EventEmitter<MouseEvent>; private handleClick = (event: MouseEvent) => { if (!this.disabled) { this.myClick.emit(event); } }
കസ്റ്റം ഇവൻ്റുകൾ `{ composed: true, bubbles: true }` ഉപയോഗിച്ച് ഡിസ്പാച്ച് ചെയ്യേണ്ടത് നിർണായകമാണ്, അതുവഴി അവയ്ക്ക് ഷാഡോ DOM ബൗണ്ടറി കടന്ന് ഫ്രെയിംവർക്ക് ഇവൻ്റ് ലിസണർമാർക്ക് കേൾക്കാൻ കഴിയും.
3. സ്ലോട്ടുകൾ ഉപയോഗിച്ച് ഉള്ളടക്കം പ്രൊജക്റ്റ് ചെയ്യാൻ പ്രാപ്തമാക്കുന്നു
ബട്ടൺ ലേബലുകൾ പോലുള്ള ഉള്ളടക്കം ഒരിക്കലും ഹാർഡ്കോഡ് ചെയ്യരുത്. ഉപയോക്താക്കൾക്ക് അവരുടെ സ്വന്തം ഉള്ളടക്കം നിങ്ങളുടെ കോമ്പോണൻ്റിലേക്ക് പ്രൊജക്റ്റ് ചെയ്യാൻ അനുവദിക്കുന്നതിന് `
// കോമ്പോണൻ്റിൻ്റെ റെൻഡർ ഫംഗ്ഷനുള്ളിൽ (JSX ഉപയോഗിച്ച്) <button class=\"button\"> <slot name=\"icon-leading\" /> <!-- ഒരു ഐക്കണിനായുള്ള പേരുള്ള സ്ലോട്ട് --> <span class=\"label\"> <slot /> <!-- ബട്ടൺ ടെക്സ്റ്റിനായുള്ള ഡിഫോൾട്ട് സ്ലോട്ട് --> </span> </button> // ഉപയോക്താവിൻ്റെ ഉപയോഗം: // <my-button>എന്നെ ക്ലിക്ക് ചെയ്യുക</my-button> // <my-button><my-icon slot=\"icon-leading\" name=\"download\"></my-icon>ഫയൽ ഡൗൺലോഡ് ചെയ്യുക</my-button>
4. പ്രവേശനക്ഷമതയ്ക്ക് മുൻഗണന നൽകുന്നു (A11y)
പ്രവേശനക്ഷമത ഒരു ഓപ്ഷണൽ ഫീച്ചറല്ല. ഒരു ബട്ടണിനെ സംബന്ധിച്ചിടത്തോളം, ഇതിനർത്ഥം:
- നേറ്റീവ് `