យើង​បាន​ឃើញ​រួច​មក​ហើយ​ថា នៅ​ក្នុង​ការយក​ក្បួន​ភ្ជាប់​ហេតុការណ៍​ណា​មួយ​មកប្រើ គឺ​ត្រូវ​យក​វត្ថុ​ដែល​ជា​ក្បួន​នោះ​មក​ប្រើ ហើយ​ក្បួន​នឹង​ត្រូវ​ call ជា​ស្វ័យប្រវត្តិ​ នៅ​ពេល​ដែល​ហេតុការណ៍​នៅ​ជាប់​នឹងក្បួន​នោះ​បាន​កើត​ឡើង​។ ក៏ប៉ុន្តែ បើ​សិន​ជា​យើង​ចង់​យក​ក្បួន​ភ្ជាប់​ហេតុការណ៍​មក​ប្រើ​តាម​របៀប call យើង​ចាំបាច់​ត្រូវ​យក​ក្បួន​នោះ​មក​ប្រើ​នៅ​ក្នុង​វត្ថុ​ដែល​ជា​ក្បួន​ណាមួយ​ផ្សេង​ទៀត​។ ហើយ​ជា​ទូទៅ គេ​ចូល​ចិត្ត​យក្បួន​ភ្ជាប់​ហេតុការណ៍​មក​ប្រើ​ នៅ​ក្នុង​វត្ថុ​ដែល​ជា​ក្បួន​​សញ្ញាព្រួញ​។

 

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')

    function handleSubmit(e, arg){
        e.preventDefault()
        alert(arg)
    }

    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, 'Submit!')}>
                    <input type="text" name='q' 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/