React是一个用于构建用户界面的JavaScript库。它由Facebook开发,并在2013年首次发布。React的核心思想是通过构建可重用的组件来构造用户界面,使得开发者能够以声明式的方式描述用户界面的状态和外观。
React通过使用虚拟DOM(Virtual DOM)来实现高效的UI更新。虚拟DOM是一个轻量级的内存中的表示,它与实际的HTML DOM结构对应。当数据发生变化时,React会计算出新的虚拟DOM树,并通过比较新旧虚拟DOM树之间的差异(称为协调)来决定需要进行实际的DOM更新操作。
React的组件模型是React的核心概念之一。组件是可复用的独立单元,可以接受输入参数(称为属性)并产生输出。通过将页面拆分成多个组件,开发者可以更好地组织代码,提高代码复用性和可维护性。
另一个重要的概念是状态管理。React组件通常会有自己的状态,可以根据状态的变化来动态更新界面。React提供了一种称为"状态钩子"的机制,允许开发者在组件中存储和更新状态,以及在状态发生变化时触发对应的界面更新。
随着时间的推移,React生态系统迅速发展,衍生出了许多相关工具和库。其中最常用的是React Router用于处理路由,Redux用于状态管理,以及Styled Components用于处理组件样式。这些工具和库与React无缝集成,丰富了React的功能和开发体验。
总结而言,React是一个用于构建用户界面的JavaScript库,它通过虚拟DOM、组件和状态管理等概念,为开发者提供了一个高效、灵活和可组合的方式来构建现代化的Web应用程序。
React Hooks用法
useState()
tsx
复制代码
const [state, setState] = useState(initialState)
useState返回两个值,一个是带有初始值的变量,一个是更新这个变量的函数 在第一次渲染的时候,返回的状态state与传入的第一个参数值相同。 setState函数用于更新state, 当它接收一个新的 state 值的时候,会将组件的一次重新渲染加入队列, setState执行渲染,如果是对象,里面的值必须是一个新对象
useEffect();
两个参数,第一个参数是一个回调函数。在组件DOM加载完毕之后执行的函数, 可以rerurn 一个函数,这个函数是组件被重新渲染或者卸载时候执行
tsx
复制代码
const App = ()=>{
useEffect(()=>{
//.....执行一些操作
return ()=>{
//这个函数是组件被重新渲染或者卸载时候执行
}
})
}
export default App;
一个函数式组件中可以存在多个 useEffect,按照顺序依次执行
用法
tsx
复制代码
useEffect(() => {
console.log("修改title");
}, []);
useEffect还有第二个参数,作用是useEffect回调函数的执行受到那个状态state的影响,如果为空数组, 则只在组件载入时执行一次。 组件卸载时执行内部的回调函数 数组中是回调函数依赖的数据,若数据发生变化则在DOM渲染完后执行回调函数。