ការស្រង់យកទិន្នន័យនៅក្នុងកញ្ចប់ React ត្រូវធ្វើឡើងដោយប្រើប្រាស់ក្បួនខ្នាត useState hook ដូចខាងក្រោមនេះ៖
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, useEffect} from 'react'
function Header(){
const [title, setTitle] = useState('កម្មវិធី React')
const [data, setData] = useState(false)
const [q, setQ] = useState(0)
const [category, setCategory] = useState(0)
function handleSubmit(e){
e.preventDefault()
setData([q, category])
}
useEffect(()=>{
if(data){
alert(data[0])
alert(data[1])
}
})
return (
<div className="Header ">
<div class='wrapper region'>
<div class='logo' onMouseOver={()=>setTitle('កម្មវិធីកំពុងដំណើរការ')} onMouseOut={()=>setTitle('កម្មវិធី React')}>
<a>{title}</a>
</div>
<form class='search' onSubmit={handleSubmit}>
<select name='category' onChange={(e)=>setCategory(e.target.value)}>
<option>ការផ្សាយ</option>
<option>ជំពូក</option>
</select>
<input type="text" name='q' onChange={(e)=>setQ(e.target.value)} 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: 20% auto 20%;
}
.Header .wrapper .search input,
.Header .wrapper .search select{
font: 14px/1.5 Vidaloka, OdorMeanChey;
padding: 0 10px;
}
.Header .wrapper .logout{
text-align: right;
font-size: 18px;
}