တုံ့ပြန်မှုပုံစံများ
HTML တွင်ကဲ့သို့ပင်၊ React သည် အသုံးပြုသူများအား ဝဘ်စာမျက်နှာနှင့် အပြန်အလှန်ဆက်သွယ်နိုင်စေရန် ပုံစံများကို အသုံးပြုသည်။
React တွင် Forms များထည့်ခြင်း။
သင်သည် အခြားဒြပ်စင်များကဲ့သို့ React ဖြင့် ဖောင်တစ်ခုကို ပေါင်းထည့်သည်-
ဥပမာ-
အသုံးပြုသူများသည် ၎င်းတို့၏အမည်ကို ထည့်သွင်းနိုင်စေမည့် ဖောင်တစ်ခုထည့်ပါ-
function MyForm() {
return (
<form>
<label>Enter your name:
<input type="text" />
</label>
</form>
)
}
ReactDOM.render(<MyForm />, document.getElementById('root'));
၎င်းသည် ပုံမှန်အတိုင်း လုပ်ဆောင်မည်ဖြစ်ပြီး ဖောင်တင်မည်ဖြစ်ပြီး စာမျက်နှာကို ပြန်လည်စတင်မည်ဖြစ်သည်။
ဒါပေမယ့် ဒါက ယေဘူယျအားဖြင့် React မှာ ဖြစ်ချင်တဲ့အရာ မဟုတ်ပါဘူး။
ကျွန်ုပ်တို့သည် ဤပုံသေအပြုအမူကို တားဆီးလိုပြီး တုံ့ပြန်မှုပုံစံကို ထိန်းချုပ်ခွင့်ပြုပါ။
ကိုင်တွယ်နည်းများ
ဖောင်များကို ကိုင်တွယ်ခြင်းသည် တန်ဖိုးကို ပြောင်းလဲခြင်း သို့မဟုတ် တင်သွင်းသည့်အခါ ဒေတာကို သင်ကိုင်တွယ်ပုံနှင့် ပတ်သက်သည်။
HTML တွင်၊ ဖောင်ဒေတာကို များသောအားဖြင့် DOM မှ ကိုင်တွယ်သည်။
တုံ့ပြန်မှုတွင်၊ ဖောင်ဒေတာကို အစိတ်အပိုင်းများက ကိုင်တွယ်လေ့ရှိသည်။
ဒေတာကို အစိတ်အပိုင်းများက ကိုင်တွယ်သောအခါ၊ ဒေတာအားလုံးကို အစိတ်အပိုင်းအခြေအနေတွင် သိမ်းဆည်းထားသည်။
ရည်ညွှန်းချက် တွင် ပွဲကိုင်တွယ်သူများကို ထည့်ခြင်းဖြင့် အပြောင်းအလဲများကို ထိန်းချုပ်နိုင်သည်
onChange
။
useState
သွင်းအားစုတန်ဖိုးတစ်ခုစီတိုင်းကို ခြေရာခံပြီး အပလီကေးရှင်းတစ်ခုလုံးအတွက် "တစ်ခုတည်းသော အမှန်တရား" ကို ပံ့ပိုးရန် Hook ကို အသုံးပြုနိုင်သည် ။
Hooks ဆိုင်ရာ နောက်ထပ်အချက်အလက်များအတွက် React Hooks ကဏ္ဍ ကို ကြည့်ပါ ။
ဥပမာ-
onChange
ထည့်သွင်းမှုကိုစီမံခန့်ခွဲရန် Hook ကိုသုံးပါ
import { useState } from "react";
import ReactDOM from 'react-dom';
function MyForm() {
const [name, setName] = useState("");
return (
<form>
<label>Enter your name:
<input
type="text"
value={name}
onChange={(e) => setName(e.target.value)}
/>
</label>
</form>
)
}
ReactDOM.render(<MyForm />, document.getElementById('root'));
လက်မှတ်ရယူပါ။
$95 စာရင်းသွင်းပါ။
ဖောင်များ တင်သွင်းခြင်း။
onSubmit
အောက်ပါ တို့အတွက် ရည်ညွှန်းချက် တွင် ဖြစ်ရပ်ကိုင်တွယ်သူအား ထည့်သွင်းခြင်းဖြင့် တင်သွင်းသည့်လုပ်ဆောင်ချက်ကို သင်ထိန်းချုပ်နိုင်သည် <form>
။
ဥပမာ-
ရည်ညွှန်းချက် တွင် တင်သွင်းရန် ခလုတ်တစ်ခုနှင့် ဖြစ်ရပ်ကိုင်တွယ်သူကို onSubmit
ထည့်ပါ-
import { useState } from "react";
import ReactDOM from 'react-dom';
function MyForm() {
const [name, setName] = useState("");
const handleSubmit = (event) => {
event.preventDefault();
alert(`The name you entered was: ${name}`)
}
return (
<form onSubmit={handleSubmit}>
<label>Enter your name:
<input
type="text"
value={name}
onChange={(e) => setName(e.target.value)}
/>
</label>
<input type="submit" />
</form>
)
}
ReactDOM.render(<MyForm />, document.getElementById('root'));
ထည့်သွင်းမှုနယ်ပယ်များစွာ
name
ဒြပ်စင်တစ်ခုစီသို့ ရည်ညွှန်းချက်တစ်ခု ထည့်ခြင်းဖြင့် ထည့်သွင်းမှုအကွက်တစ်ခုထက်ပိုသော တန်ဖိုးများကို သင်ထိန်းချုပ်နိုင်သည်
။
ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏အခြေအနေကို အလွတ်အရာတစ်ခုဖြင့် အစပြုပါမည်။
event handler ရှိ အကွက်များကို ဝင်ရောက်ရန်
event.target.name
နှင့်
event.target.value
syntax ကို အသုံးပြုပါ။
အခြေအနေအား အပ်ဒိတ်လုပ်ရန်၊ ပစ္စည်းအမည်ပတ်လည်ရှိ စတုရန်းကွင်းစကွက်များ [ကွင်းစကွင်းပိတ်အမှတ်အသား] ကို အသုံးပြုပါ။
ဥပမာ-
ဖြည့်သွင်းအကွက်နှစ်ခုပါသော ဖောင်တစ်ခုကို ရေးပါ-
import { useState } from "react";
import ReactDOM from "react-dom";
function MyForm() {
const [inputs, setInputs] = useState({});
const handleChange = (event) => {
const name = event.target.name;
const value = event.target.value;
setInputs(values => ({...values, [name]: value}))
}
const handleSubmit = (event) => {
event.preventDefault();
alert(inputs);
}
return (
<form onSubmit={handleSubmit}>
<label>Enter your name:
<input
type="text"
name="username"
value={inputs.username || ""}
onChange={handleChange}
/>
</label>
<label>Enter your age:
<input
type="number"
name="age"
value={inputs.age || ""}
onChange={handleChange}
/>
</label>
<input type="submit" />
</form>
)
}
ReactDOM.render(<MyForm />, document.getElementById('root'));
မှတ်ချက်- ကျွန်ုပ်တို့သည် input အကွက်နှစ်ခုလုံးအတွက် တူညီသော event handler လုပ်ဆောင်ချက်ကို အသုံးပြုသည်၊ တစ်ခုစီအတွက် event handler တစ်ခုရေးနိုင်သည်၊ သို့သော် ၎င်းသည် ကျွန်ုပ်တို့အား ပိုမိုသန့်ရှင်းသောကုဒ်ကိုပေးစွမ်းပြီး React တွင် ဦးစားပေးနည်းလမ်းဖြစ်သည်။
Textarea
React ရှိ textarea အစိတ်အပိုင်းသည် သာမန် HTML နှင့် အနည်းငယ်ကွဲပြားသည်။
<textarea>
HTML တွင် textarea တစ်ခု၏တန်ဖိုးသည် start tag နှင့် end tag အကြားရှိ စာသား
</textarea>
ဖြစ်သည်။
<textarea>
Content of the textarea.
</textarea>
React တွင် textarea ၏တန်ဖိုးကို value attribute တွင်ထည့်ထားသည်။ useState
Textarea ၏တန်ဖိုးကိုစီမံခန့်ခွဲရန် Hook ကို အသုံးပြုပါမည် ။
ဥပမာ-
အကြောင်းအရာအချို့ပါသော ရိုးရှင်းသော textarea တစ်ခု။
import { useState } from "react";
import ReactDOM from "react-dom";
function MyForm() {
const [textarea, setTextarea] = useState(
"The content of a textarea goes in the value attribute"
);
const handleChange = (event) => {
setTextarea(event.target.value)
}
return (
<form>
<textarea value={textarea} onChange={handleChange} />
</form>
)
}
ReactDOM.render(<MyForm />, document.getElementById('root'));
ရွေးချယ်ပါ။
React ရှိ drop down list သို့မဟုတ် select box တစ်ခုသည် HTML နှင့် အနည်းငယ် ကွာခြားပါသည်။
HTML တွင်၊ drop down list မှရွေးချယ်ထားသောတန်ဖိုးကို selected
attribute ဖြင့်သတ်မှတ်ခဲ့သည်-
HTML-
<select>
<option value="Ford">Ford</option>
<option value="Volvo" selected>Volvo</option>
<option value="Fiat">Fiat</option>
</select>
React တွင်၊ ရွေးထားသောတန်ဖိုးကို tag value
တွင် attribute တစ်ခုဖြင့် သတ်မှတ်သည်-select
ဥပမာ-
constructor တွင် ရွေးချယ်ထားသော တန်ဖိုး "Volvo" ကို အစပြုထားသည့် ရိုးရှင်းသော ရွေးကွက်တစ်ခု-
function MyForm() {
const [myCar, setMyCar] = useState("Volvo");
const handleChange = (event) => {
setMyCar(event.target.value)
}
return (
<form>
<select value={myCar} onChange={handleChange}>
<option value="Ford">Ford</option>
<option value="Volvo">Volvo</option>
<option value="Fiat">Fiat</option>
</select>
</form>
)
}
ဤအနည်းငယ်သော အပြောင်းအလဲများကို ပြုလုပ်ခြင်းဖြင့် <textarea>
, <select>
React သည် input element အားလုံးကို တူညီသောနည်းလမ်းဖြင့် ကိုင်တွယ်နိုင်သည်။