බොත්තම් click කිරීම වැනි පරිශීලක ක්රියා (user events) හසුරුවා ගන්නා ආකාරය සහ ඒ හරහා state එක යාවත්කාලීන කරන ආකාරය ඉගෙන ගනිමු.
මෙම පාඩමේදී අප සිදුකරන සියලුම වෙනස්කම්, අපගේ ප්රධාන component ගොනුව වන `src/App.jsx` තුල සිදු කෙරේ. ඔබගේ project ෆෝල්ඩරයේ ව්යුහය මෙසේ දිස්වනු ඇත:
counter-app/
└── src/
├── App.css
├── App.jsx <-- ✍️ අපි වෙනස් කරන්නේ මෙම ගොනුවයි
├── index.css
└── main.jsx
මෙම පාඩමේදී අප ලියන කේතය සම්පූර්ණ වූ විට, අපගේ Counter App එක මෙසේ ක්රියාත්මක වනු ඇත. පහත බොත්තම් click කර බලන්න!
React වලදී events හැසිරවීම, සාමාන්ය HTML වලට බොහෝ සෙයින් සමානයි. නමුත් ප්රධාන වෙනස්කම් දෙකක් ඇත:
{} තුල function එකම ලබා දේ.<!-- සාමාන්ය HTML -->
<button onclick="myFunction()">Click Me</button>
<!-- React JSX -->
<button onClick={myFunction}>Click Me</button>
අපගේ Counter App එකේ බොත්තම් තුන සඳහා, අගය වැඩි කිරීමට, අඩු කිරීමට, සහ reset කිරීමට functions තුනක් `App` component එක තුල නිර්මාණය කරමු. මෙම functions තුලදී, state එක යාවත්කාලීන කිරීමට පෙර පාඩමේදී අපට ලැබුණු `setCount` function එක භාවිතා කරමු.
// src/App.jsx
import { useState } from 'react';
function App() {
const [count, setCount] = useState(0);
// 1. Event handler functions 3 නිර්මාණය කරන්න
const handleIncrement = () => {
setCount(count + 1);
};
const handleDecrement = () => {
setCount(count - 1);
};
const handleReset = () => {
setCount(0);
};
return (
//... JSX කේතය
);
}
export default App;
මෙහිදී, `setCount(count + 1)` ලෙස call කළ විට, React හට `count` state එකේ නව අගය `count + 1` බව දන්වයි. එවිට React ස්වයංක්රීයව component එක re-render කර, UI එකේ පෙන්වන අගය යාවත්කාලීන කරයි.
අවසාන පියවර ලෙස, අප නිර්මාණය කළ functions, අදාළ බොත්තම් වල `onClick` event එකට සම්බන්ධ කරමු.
// src/App.jsx (සම්පූර්ණ කේතය)
import { useState } from 'react';
function App() {
const [count, setCount] = useState(0);
const handleIncrement = () => {
setCount(count + 1);
};
const handleDecrement = () => {
setCount(count - 1);
};
const handleReset = () => {
setCount(0);
};
return (
<div className="container mt-5">
<div className="row justify-content-center">
<div className="col-md-6">
<div className="card text-center">
<div className="card-header">
React Counter App
</div>
<div className="card-body">
<h1 className="display-1">{count}</h1>
</div>
<div className="card-footer">
{/* 2. onClick event handlers සම්බන්ධ කරන්න */}
<button className="btn btn-success me-2" onClick={handleIncrement}>Plus (+)</button>
<button className="btn btn-warning me-2" onClick={handleReset}>Reset</button>
<button className="btn btn-danger" onClick={handleDecrement}>Minus (-)</button>
</div>
</div>
</div>
</div>
</div>
)
}
export default App
මෙම වෙනස්කම් save කර, ඔබගේ `counter-app` project එකේ browser window එක බලන්න. දැන් Plus (+), Reset, සහ Minus (-) බොත්තම් click කළ විට, counter එකේ අගය නිවැරදිව යාවත්කාලීන වන බව ඔබට දැකගත හැකි වනු ඇත. ඉහත සජීවී ආදර්ශනය ක්රියාත්මක වන්නේද මෙම කේතයෙනි.
සුබ පැතුම්! 🎉 ඔබ දැන් state එකක් සහිත, පරිශීලකයාට ක්රියා කළ හැකි (interactive) React component එකක් සාර්ථකව නිර්මාණය කර ඇත.
⬅️ මුල් පිටුවට