នៅក្នុងកញ្ចប់ React ការស្រង់យកទិន្នន័យពីទំរង់បែបបទ ត្រូវធ្វើឡើងតាមរយៈហេុតការណ៍ onChange កើតឡើងនៅក្នុងទំរង់បែបបទ នៅពេលដែលយើងបញ្ចូលទិន្នន័យទៅក្នុងនោះ។
import './App.css'
import './styles/global.css'
import Header from './components/header'
function App() {
return (
<div className = "App">
<Header />
</div>
)
}
export default App
import '../styles/header.css'
import {useState} from 'react'
function Header(){
const [title, setTitle] = useState('កម្មវិធី React')
const [data, setData] = useState(0)
function handleSubmit(e, arg){
e.preventDefault()
alert(data)
}
function onChangeHandler(e){
e.preventDefault()
setData(e.target.value)
}
return (
<div className="Header ">
<div class='wrapper region'>
<div class='logo' onMouseOver={()=>setTitle('កម្មវិធីកំពុងដំណើរការ')} onMouseOut={()=>setTitle('កម្មវិធី React')}>
<a>{title}</a>
</div>
<form class='search' onSubmit={(e)=>handleSubmit(e)}>
<input type="text" name='q' onChange={onChangeHandler} required />
<input type='submit' value='បញ្ជូន' />
</form>
<div class='logout'>ទំព័រដើម | ចូលក្នុង</div>
</div>
</div>
)
}
export default Header
.Header{
background: var(--background-dark);
color: white;
padding: 5px 0;
}
.Header .wrapper{
display: grid;
grid-template-columns: 30% auto 25%;
align-items: center;
}
.Header .wrapper .logo{
font: 30px/1.5 Anton, Limonf3;
}
.Header .wrapper .search{
display: grid;
grid-template-columns: auto 20%;
}
.Header .wrapper .search input{
font: 14px/1.5 Vidaloka, OdorMeanChey;
padding: 0 10px;
}
.Header .wrapper .logout{
text-align: right;
font-size: 18px;
}