2、react学习: react hooks简单使用
1 import React,{ useState,useEffect } from 'react' 2 function User(){ 3 const [date,setDate] = useState(new Date()); 4 const [date2,setDate2] = useState(new Date());//多个变量写多个useState 5 useEffect(()=>{ 6 const timerId = setInterval(() => { 7 setDate(new Date()); 8 setDate2(new Date()) 9 }, 1000); 10 return ()=>clearInterval(timerId);//组件卸载就执行return方法 11 }) 12 return( 13 <React.Fragment> 14 <h1>user</h1> 15 <div>時間:{date.toLocaleTimeString()}</div> 16 <div>時間2:{date2.toLocaleTimeString()}</div> 17 </React.Fragment> 18 ) 19 } 20 21 export default User;
Hooks版todolist:
官方文档:https://reactjs.org/docs/hooks-overview.html
使你在⽆需修改组件结构的情况下复⽤状态逻辑 可将组件中相互关联的部分拆分成更⼩的函数,
复杂组件将变得 更容易理解 更简洁、更易理解的代码
1 import React,{useState, useEffect} from 'react' 2 import { userInfo } from 'os' 3 4 function Hookspages(props){ 5 const [fruits, setFruits] = useState(['苹果','栗子']) 6 return (<div> 7 Hookspages 8 <AddFruits addFruit={ item=> setFruits([...fruits, item])}/> 9 <FruitsList fruits={fruits} setFruits={setFruits}/> 10 </div>) 11 } 12 13 14 function AddFruits({addFruit}){ 15 const [name, setName] = useState(""); 16 return( 17 <div> 18 <input value={name} onChange={(e)=>setName(e.target.value)} /> 19 <button onClick={()=>addFruit(name)}>点击增加</button> 20 </div> 21 ) 22 } 23 24 25 function FruitsList({fruits,setFruits}){ 26 27 const delcur = delIndx=>{ 28 const tem = [...fruits]; 29 tem.splice(delIndx,1); 30 setFruits(tem) 31 } 32 33 return( 34 <div> 35 <ul> 36 {fruits.map((item,index)=>{ 37 return <li key={`fruits${index}`} onClick={()=>delcur(index)}>{item}</li> 38 })} 39 </ul> 40 </div> 41 ) 42 } 43 44 export default Hookspages;