ref和声明周期结合的时候 只要不做修改ref,就会存储初始的值(变化前的值) ref不绑定标签 绑定数据绑定txt数据
import React,{useState,useEffect,useRef} from 'react'; function Child(props){ //props 接收父 参数 // console.log(props) // let data = props.data 1不结构 let {data} = props //2解构方法 let [ages, setage] = useState(8) // ref 的使用 let agep = useRef() let [txt, settxt] = useState("文字") //ref和声明周期结合的时候 只要不做修改ref,就会存储初始的值(变化前的值) let txtP = useRef(txt) // 不绑定标签 绑定数据绑定txt数据, // 这里获取的是dom节点 注意要在挂载之后获取 // console.log(agep.current) useEffect(()=>{ console.log(txtP.current,txt) //ref 要绑定数据 不要绑定标签 //这里没有修改之前txtP.current永远获取到初始值,修改后获取到变化前的值 txtP.current = txt },[txt]) let message= `你好啊啊啊啊` return <div> <h1>名称:{data.name}</h1> {/* age不是传递过来的数据 是本地 */} <h3 ref= {agep}>age:{ages}</h3> <button onClick={()=>{ setage(++ages) }}> 涨一岁 </button> <p>{txt}</p> <input type = "text" value= {txt} onChange={({target})=>{ settxt(target.value) }} /> <p dangerouslySetInnerHTML={{ __html:message }} ></p> </div> } export default Child;