នៅ​ក្នុង​កញ្ចប់ 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;
}

 

GitHub: https://github.com/Sokhavuth/react

Heroku: https://khmerweb-react.herokuapp.com/