当前位置: 首页 > news >正文

简单的静态 新闻 asp 网站源码四川城乡住房城乡建设厅网站

简单的静态 新闻 asp 网站源码,四川城乡住房城乡建设厅网站,建设网上银行登录入口,哈尔滨做网站数据平台的公司useState:管理组件状态 useState 是一个用于在函数组件中添加状态的 Hook。它允许你在函数组件中声明一个状态变量,并提供一个更新该状态的方法,其中与组件生命周期的关系: 初始化:当组件首次渲染时,useS…

useState:管理组件状态

useState 是一个用于在函数组件中添加状态的 Hook。它允许你在函数组件中声明一个状态变量,并提供一个更新该状态的方法,其中与组件生命周期的关系

  1. 初始化:当组件首次渲染时,useState 返回的初始状态值。
  2. 更新:当状态更新时,React 会重新渲染组件,并使用新的状态值。
const [state, setState] = useState(initialState);// state:当前状态的值。
// setState:更新状态的函数。
// initialState:初始状态的值。
import React, { useState } from 'react';function Counter() {const [count, setCount] = useState(0);const incrementCount = () => {setCount(count + 1);};return (<div><h1>Count: {count}</h1><button onClick={incrementCount}>+1</button></div>);
}export default Counter;

useEffect:用于在函数组件中执行副作用操作

useEffect 是一个用于在函数组件中执行副作用操作的 Hook。它可以替代类组件中的 componentDidMountcomponentDidUpdate 和 componentWillUnmount 生命周期方法,其中与组件生命周期的关系:
  1. 组件挂载:当组件首次渲染时,useEffect 的回调函数会被执行。
  2. 组件更新:当组件重新渲染且依赖数组中的值发生变化时,useEffect 的回调函数会被执行。
  3. 组件卸载:当组件卸载时,useEffect 返回的清理函数会被执行。
useEffect(() => {// 副作用操作return () => {// 清理操作};
}, [dependencies]);/*** () => {}:副作用操作的回调函数。* return () => {}:可选的清理函数,用于在组件卸载或下次渲染前执行清理操作。* [dependencies]:依赖数组,用于控制何时触发副作用操作。空数组 [] 表示只在组件挂载和卸载时执行。*/
import React, { useState, useEffect } from 'react';function UserInfo() {const [user, setUser] = useState(null);const [loading, setLoading] = useState(true);const [error, setError] = useState(null);useEffect(() => {const fetchUser = async () => {try {const response = await fetch('https://jsonplaceholder.typicode.com/users/1');if (!response.ok) {throw new Error('Network response was not ok');}const data = await response.json();setUser(data);} catch (error) {setError(error);} finally {setLoading(false);}};fetchUser();// 清理函数return () => {console.log('Cleanup function called');};}, []); // 空依赖数组表示只在组件挂载和卸载时执行if (loading) return <p>Loading...</p>;if (error) return <p>Error: {error.message}</p>;return (<div><h1>User Information</h1><p>Name: {user.name}</p><p>Email: {user.email}</p><p>Phone: {user.phone}</p><p>Website: {user.website}</p></div>);
}export default UserInfo;

useMemo:优化性能,避免不必要的重新计算

useMemo 是一个用于 memoization(记忆化)的 Hook。它可以在某些情况下避免昂贵的计算,从而提高性能,与组件生命周期的关系:
  1. 初始化:当组件首次渲染时,useMemo 会计算并返回结果。
  2. 更新:当依赖数组中的值发生变化时,useMemo 会重新计算并返回新的结果
  3. 不变:当依赖数组中的值没有变化时,useMemo 会返回上次计算的结果,避免重新计算。
const memoizedValue = useMemo(() => {// 计算结果
}, [dependencies]);// () => {}:计算结果的回调函数。// [dependencies]:依赖数组,用于控制何时重新计算。即当依赖数组中的值发生变化时,才会重新计算。
import React, { useState, useMemo } from 'react';function ExpensiveComponent({ count }) {const expensiveCalculation = useMemo(() => {let result = 0;for (let i = 0; i < 1000000; i++) {result += i * count;}return result;}, [count]);return <div>Result: {expensiveCalculation}</div>;
}function App() {const [count, setCount] = useState(0);return (<div><ExpensiveComponent count={count} /><button onClick={() => setCount(count + 1)}>+1</button></div>);
}export default App;

useCallback:优化性能,避免不必要的函数重新创建

useCallback 是一个用于 memoization(记忆化)函数的 Hook。它可以在某些情况下避免不必要的函数重新创建,从而提高性能,与组件生命周期的关系:
  1. 初始化:当组件首次渲染时,useCallback 会返回一个 memoized 的函数。
  2. 更新:当依赖数组中的值发生变化时,useCallback 会返回一个新的函数。
  3. 不变:当依赖数组中的值没有变化时,useCallback 会返回上次 memoized 的函数,避免重新创建。
const memoizedCallback = useCallback(() => {// 回调函数
}, [dependencies]);// () => {}:回调函数。// [dependencies]:依赖数组,用于控制何时重新创建回调函数。即当依赖数组中的值发生变化时,才会返回新的函数。
import React, { useState, useCallback } from 'react';function ChildComponent({ onIncrement }) {return (<button onClick={onIncrement}>+1</button>);
}function ParentComponent() {const [count, setCount] = useState(0);const handleIncrement = useCallback(() => {setCount(count + 1);}, [count]);return (<div><ChildComponent onIncrement={handleIncrement} /><p>Count: {count}</p></div>);
}export default ParentComponent;

应用

import React, { useState, useEffect, useMemo, useCallback } from "react";const UserInfo = () => {const [user, setUser] = useState(null);const [loading, setLoading] = useState(true);const [error, setError] = useState(null);// 定义 fetchUser 函数const fetchUser = async () => {try {const response = await fetch("https://jsonplaceholder.typicode.com/users/1");if (!response.ok) {throw new Error("Network response was not ok");}const data = await response.json();setUser(data);} catch (error) {setError(error);} finally {setLoading(false);}};// 使用 useEffect 替代 componentDidMount 和 componentDidUpdateuseEffect(() => {fetchUser();// 清理函数,替代 componentWillUnmountreturn () => {console.log("Cleanup function called");};}, []); // 空依赖数组表示只在组件挂载和卸载时执行// 使用 useMemo 优化性能,避免不必要的重新计算const userInfo = useMemo(() => {if (!user) return null;return (<div><h1>User Information</h1><p>Name: {user.name}</p><p>Email: {user.email}</p><p>Phone: {user.phone}</p><p>Website: {user.website}</p></div>);}, [user]);// 使用 useCallback 优化性能,避免不必要的函数重新创建const handleRefresh = useCallback(() => {setLoading(true);setUser(null);setError(null);fetchUser(); // 调用 fetchUser 函数重新获取数据}, [fetchUser]); // 添加 fetchUser 作为依赖if (loading) return <p>Loading...</p>;if (error) return <p>Error: {error.message}</p>;return (<div>{userInfo}<button onClick={handleRefresh}>Refresh</button></div>);
};export default UserInfo;

总结

  1. useState:用于管理组件状态,在组件初始化更新时生效。
  2. useEffect:用于执行副作用操作,如数据获取和清理,可以在组件挂载、更新和卸载时生效。
  3. useMemo:用于 memoization,避免不必要的计算,可以在组件初始化依赖变化时生效。
  4. useCallback:用于 memoization,避免不必要的函数重新创建,可以在组件初始化依赖变化时生效。
http://www.yayakq.cn/news/332371/

相关文章:

  • 网站等保如何做消费者联盟网站怎么做
  • 在哪能学到网站建设专业如何重装电脑的wordpress
  • 古风自己做头像的网站定西市城乡建设局网站
  • 做购物网站能赚钱吗免费网站制作软件的app
  • 做外贸推广自己网站单页网站程序
  • 网站建设有什么价值天津专业网站策划公司
  • 深圳网站设计公司排名苏州新区城乡建设网站
  • 大同网站开发微信 怎么上传 wordpress
  • h5网站页面设计旅游网站建设公司排名
  • 哪家做网站做得好手机可以设计网站吗
  • 什么是网站建设的重点sem优化软件选哪家
  • 余姚网站建设公司网站备案有什么风险
  • 域名和网站不是一家怎么办糖果网站是李笑来做的吗
  • 西安 做网站 499个人网站网页首页
  • 怎么用phpcmf做网站做网站的毕业答辩ppt实例
  • 如何申请一个网站空间搜索推广和场景推广
  • 做装修公司的网站刚做的网站怎么才能搜索到
  • 商务网站建设试题家居用品东莞网站建设
  • 好的培训网站模板在线手机网站建设
  • 网站怎么制作成软件seo公司赚钱吗
  • 贵州安顺做公司网站铁岭 建筑公司网站 中企动力建设
  • 企业站模板大全汽车之家网页版入口
  • 企业网站设计的深圳公司北京到安阳大巴车几个小时
  • 淮北建设银行官方网站app网站怎么制作
  • thinkphp手机网站模板想找一家公司设计网站
  • 寿光网站建设公司招聘网站开发需求分析
  • 个人建站做什么网站比较赚钱网站内容的重要性
  • 知乎 淘宝网站建设手机企业wap网站
  • 湖南高端网站制作公企业所得税税收筹划
  • 建设主题网站的顺序是什么样的公司网站seo怎么做