第一节-setState
import React, { useState } from 'react';
const ClickCount = () => {
const [num, setNum] = useState(0);
const [count, setCount] = useState(() => 0);
const handleClick = () => {
setNum(num + 1);
setCount(count + 2);
} return (
<div>
<p>count:{count}</p>
<p>num:{num}</p>
<button onClick={handleClick}>+1</button>
</div>
)}
function App() {
return (
<div className="App">
<ClickCount />
</div> );
}
export default App;
第二节 -useEffect
import React, { useState, useEffect } from 'react';
const Fetch = () => {
const [result, setResult] = useState(null);
useEffect(() => {
fetch('./index.js').then((res) => (res.text())).then(res => {
console.log('&&&&111111');
setResult(res);
})}, [result]);
return (
<div>
<p>result:{result}</p>
</div> );
}
const Count = () => {
const [count, setCount] = useState(() => 0);
useEffect(() => {
const timer = setInterval(() => {
console.log(count);
setCount(count + 1);
}, 500);
return () => clearInterval(timer)
}, [count]);
return (
<div>
<p>count:{count}</p>
</div> )}
function App() {
return (
<div className="App">
<Fetch />
<Count />
</div> );}
export default App;
第三节 useRef
import React, { useState, useEffect, useRef } from 'react';
const Count = () => {
const [count, setCount] = useState(() => 0);
const countRef = useRef(null);
const btnRef = useRef(null);
useEffect(() => {
const handlOnclick = () => {
setCount(count + 1)
}
btnRef.current.addEventListener('click', handlOnclick, false)
return () =>
btnRef.current.removeEventListener('click', handlOnclick, false) },
[count])
return ( <div>
<p>count:{count}</p>
{/* <button onClick={handleClick}>+2 </button> */}
<button ref={btnRef}>+3</button>
</div> )}
function App() {
return (
<div className="App">
<ClickCount />
<Fetch />
<Count />
</div>
);
}
export default App;