受控组件
受控组件,简单来讲,就是受我们控制的组件,组件的状态全程响应外部数据
例如:
import React,{useState} from 'react' export default function App() { const [data,setdata] = useState("受控组件") return ( <div> <input value={data}></input> </div> ) }
这时候当我们在输入框输入内容的时候,会发现输入的内容并无法显示出来,也就是input标签是一个可读的状态
这是因为value被data所控制住。当用户输入新的内容时,data并不会自动更新,这样的话input内的内容也就不会变了
如果想要解除被控制,可以为input标签设置onChange事件,输入的时候触发事件函数,在函数内部实现data数据的更新,从而导致input框的内容页发现改变
因此,受控组件我们一般需要初始状态和一个状态更新事件函数
非受控组件
非受控组件,简单来讲,就是不受我们控制的组件 一般情况是在初始化的时候接受外部数据,然后自己在内部存储其自身状态
import React,{useState} from 'react' export default function App() { const [data,setdata] = useState("非受控组件") return ( <div> <input defaultValue={data} /> </div> ) }
两者的应用场景