Module 3 – React Components හඳුනාගනිමු
Components යනු React හි හදවතයි. ඒවා තේරුම් ගැනීමෙන් ඔබට ඕනෑම සංකීර්ණ UI එකක් පහසුවෙන් ගොඩනැගීමේ හැකියාව ලැබේ.
Components යනු කුමක්ද?
React Components යනු ඔබගේ UI එකේ **ස්වාධීන, නැවත භාවිත කළ හැකි කොටස්** වේ. නැවතත් අපේ LEGO උපමාව ගත්තොත්, component එකක් කියන්නේ තනි LEGO කෑල්ලක් වගෙයි. ඔබට විවිධ LEGO කෑලි (components) එකට එකතු කරලා සම්පූර්ණ නිර්මාණයක් (ඔබගේ වෙබ් පිටුව) ගොඩනගන්න පුළුවන්.
වෙබ් පිටුවක ඇති Navigation Bar, Button, Footer, Image Gallery, Form එකක් වැනි ඕනෑම දෙයක් වෙනම component එකක් ලෙස නිර්මාණය කළ හැක.
Components වල වාසි මොනවාද?
- Reusability (නැවත භාවිතය): එකම button component එක, ඔබගේ වෙබ් අඩවියේ තැන් කිහිපයකදී නැවත නැවත භාවිතා කළ හැක.
- Isolation (απομόνωση): එක component එකක කේතය (logic) සහ පෙනුම (styles) අනෙක් components වලින් වෙන්ව පවතී. මේ නිසා දෝෂ නිරාකරණය (debugging) සහ නඩත්තුව (maintenance) පහසු වේ.
- Composition (සංಯෝජනය): කුඩා components එකතු කර, විශාල, සංකීර්ණ components නිර්මාණය කළ හැක.
ඔබගේ පළමු Functional Component එක ලිවීම
Functional Component එකක් යනු සරලවම **JSX (HTML වැනි කේත) return කරන JavaScript function එකකි.**
Component එකක නමක් සෑමවිටම **Capital Letter** එකකින් ආරම්භ විය යුතුය (උදා: `Header`, `UserProfile`). මෙය සාමාන්ය HTML tag එකකින් (`
`, `
`) React component එකක් වෙන් කර හඳුනාගැනීමට උපකාරී වේ.
මෙන්න සරලම `Welcome` component එකක උදාහරණයක්:
function Welcome() {
return <h1>Hello, Welcome to React!</h1>;
}
මෙම `Welcome` component එක වෙනත් component එකක් තුළ භාවිතා කිරීමට, අපට එය HTML tag එකක් ලෙස මෙසේ ලිවිය හැක:
<Welcome />
Module 3: කුඩා කාර්යය (Mini Task)
අපි දැන් `Header` නමින් නව component එකක් නිර්මාණය කර, එය අපගේ ප්රධාන `App.jsx` file එක තුළ භාවිතා කරමු. හොඳම පුරුද්දක් ලෙස, අපි අපගේ සියලුම components, `src` folder එක තුළ ඇති `components` නමැති අලුත් folder එකක තබමු.
ඉලක්කගත Folder ව්යුහය
මෙම කාර්යය අවසානයේ ඔබගේ `src` folder එකේ ව්යුහය මෙසේ දිස්විය යුතුය:
/src
├── /components
│ └── Header.jsx <-- ඔබ අලුතින් සාදන file එක
├── App.css
├── App.jsx <-- අපි මෙය edit කරනවා
├── index.css
└── main.jsx
අනුගමනය කළ යුතු පියවර:
- ඔබගේ project එකේ
/srcfolder එක තුළcomponentsනමින් නව folder එකක් සාදන්න. - එම `components` folder එක තුළ
Header.jsxනමින් නව file එකක් සාදන්න. - `Header.jsx` file එකට පහත කේතය ඇතුළත් කරන්න:
function Header() { return ( <header style={{ background: '#333', color: 'white', padding: '10px 20px', textAlign: 'center' }}> <h1>My Awesome React App</h1> <nav> <a href="#" style={{ color: 'white', margin: '0 10px' }}>Home</a> <a href="#" style={{ color: 'white', margin: '0 10px' }}>About</a> </nav> </header> ); } export default Header; - දැන්,
src/App.jsxfile එක විවෘත කරන්න. - File එකේ ඉහළින්ම, අපගේ `Header` component එක import කරගන්න (නිවැරදි path එක යොදන්න):
import Header from './components/Header.jsx'; - අවසාන වශයෙන්, `App` component එකේ `return` statement එක තුළ, default content එකට ඉහළින් `
` ලෙස අපගේ component එක එක් කරන්න: function App() { // You can remove all the default state and content from Vite return ( <> <Header /> <main style={{ padding: '20px', textAlign: 'center' }}> <p>Welcome to the main content area!</p> </main> </> ); } export default App;
File එක save කර ඔබගේ browser එක දෙස බලන්න. ඔබ අලුතින් සෑදූ Header එක දැන් ප්රධාන පිටුවේ ඉහළින්ම දිස්විය යුතුය!