useEffect គឺ​ជា​ក្បួនខ្នាតដ៏​ពិសេស​ម៉្យាង​នៅ​ក្នុង​កញ្ចប់ React ដែល​ត្រូ​វ​បាន​គេ​យក​មក​ប្រើប្រាស់​​តំរូវ​អោយ​ក្បួន​មួយ​ចំនួន​​ទៀត អាច​ដំណើរការ​ទៅ​បានដោយ​ស្វ័យប្រវត្តិ​ ក្រោយ​ពី​ element ទាំងឡាយ​របស់ HTML ត្រូវ​បាន​បង្កើត​ឬ​​កែ​ប្រែ​រួច​ស្រេចបាច់​។

 

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 [count, setCount] = useState(0)

    useEffect(() => {
        document.title = `អ្នក​បាន​ចុច​ចំនួន ${count} ដង`
    })

    return (
        <div className="Header ">
            <div class='wrapper region'>
                <div class='logo'><a onClick={()=>setCount(count + 1)}>កម្មវិធី React</a></div>

                <form class='search'>
                    <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/