# useState and useEffect
```javascript=
import React, { useState, useEffect /* effect hock */} from "react";
function User() {
// componentDidMount, [] array define this is didmount
useEffect(() => {
alert("function added")
}, [])
// componentWillUnmount
useEffect(() => {
return () => {
alert("function removed")
}
}, [])
useEffect(() => {
const intervalId = setInterval(() => {
document.title = `${new Date().toLocaleString('en-US', { hour: 'numeric', minute: 'numeric', second: 'numeric', hour12: true })}`;
}, 1000);
return () => {
document.title = "Time stopped.";
clearInterval(intervalId);
}
}, [])
return (
<div>
User
</div>
)
}
function App() {
const [num, setNum] = useState(0);
const [buttonValue, setButtonValue] = useState("myuser");
const [user, setUser] = useState(false);
// componentDidMount, [] array define this is didmount
useEffect(() => {
setNum(num + 1)
}, [])
// componentDidUpdate
useEffect(() => {
setNum(num + 1)
}, [buttonValue])
const updateButton = () => {
setButtonValue("myuser update")
setUser(!user);
}
return (
<div>
{ num }
<br />
<button onClick={updateButton}>update trigger</button>
<br />
{ buttonValue }
{ user && <User /> }
</div>
);
}
ReactDOM.render(<App />, document.querySelector("#mountNode"))
```