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

微盟商户助手app下载青岛网站seo公司

微盟商户助手app下载,青岛网站seo公司,大连招标投标信息网,网站建设背景最近遇到一个场景,就是组件渲染的时候去调用接口进行数据回填。这个在vue中很简单,在created生命周期函数中,直接调用接口即可。但是react没有created生命周期,所以在react中我们需要用到useEffect钩子函数。 在 React 函数组件中…

最近遇到一个场景,就是组件渲染的时候去调用接口进行数据回填。这个在vue中很简单,在created生命周期函数中,直接调用接口即可。但是react没有created生命周期,所以在react中我们需要用到useEffect钩子函数。

在 React 函数组件中使用useEffect时,要注意依赖项数组。如果依赖项数组为空 ,则 useEffect只会在组件挂载和卸载时执行;如果依赖项数组中有值,当这些值发生变化时,useEffect会重新执行。

副作用函数的概念:在 React 中,组件的主要职责是根据输入的props和state渲染 UI。但在实际应用中,我们常常需要执行一些与渲染无关的操作,比如数据获取、订阅事件、手动修改 DOM 等,这些操作就被称为副作用 。useEffect允许在函数组件中执行这些副作用操作。

在类组件中可以使用componentDidMount生命周期函数实现相同效果。

useEffect

import React, { useEffect, useState } from 'react';// 模拟接口数据
const mockData = [{id: 1,title: '标题1111',body: 'qqqqqqq'},{id: 2,title: '标题222',body: 'wwwwww'},];// 封装模拟请求方法
const mockFetchData = () => {return new Promise((resolve) => {// 模拟请求耗时 1 秒setTimeout(() => {resolve(mockData);}, 1000);});
};function App() {// 使用 useState 来存储从模拟接口获取的数据const [data, setData] = useState([]);// 使用 useState 来存储加载状态const [isLoading, setIsLoading] = useState(true);// 使用 useState 来存储错误信息const [error, setError] = useState(null);useEffect(() => {const fetchData = async () => {try {// 调用模拟请求方法const response = await mockFetchData();// 将模拟响应数据存储到 state 中setData(response);} catch (err) {// 如果模拟请求出错,将错误信息存储到 state 中setError(err.message);} finally {// 请求完成后,将加载状态设置为 falsesetIsLoading(false);}};// 调用 fetchData 函数fetchData();}, []);if (isLoading) {// 如果正在加载,显示加载提示return <div>Loading...</div>;}if (error) {// 如果出现错误,显示错误信息return <div>Error: {error}</div>;}return (<div className="App">{/* 遍历渲染数据 */}<ul>{data.map(post => (<li key={post.id}><h2>{post.title}</h2><p>{post.body}</p></li>))}</ul></div>);
}export default App;

运行效果:

componentDidMount生命周期函数

 

import React from 'react';// 模拟接口数据
const mockData = [{id: 1,title: '类组件',body: 'qqqqqqq'},{id: 2,title: '使用componentDidMount生命周期函数在组件渲染的时候获取数据',body: 'wwwwww'},
];// 封装模拟请求方法
const mockFetchData = () => {return new Promise((resolve) => {// 模拟请求耗时 1 秒setTimeout(() => {resolve(mockData);}, 1000);});
};class App extends React.Component {// 类组件在构造函数中初始化数据constructor(props) {super(props);// 初始化状态this.state = {data: [],isLoading: true,error: null};}
// 该方法在组件挂载到 DOM 后立即调用,在这个方法里调用 fetchData 函数来获取数据,
// 这类似于函数组件中 useEffect 传入空依赖数组的情况componentDidMount() {// 在组件挂载后调用数据获取函数this.fetchData();}fetchData = async () => {try {// 调用模拟请求方法const response = await mockFetchData();// 将模拟响应数据存储到 state 中this.setState({ data: response });} catch (err) {// 如果模拟请求出错,将错误信息存储到 state 中this.setState({ error: err.message });} finally {// 请求完成后,将加载状态设置为 falsethis.setState({ isLoading: false });}}render() {const { data, isLoading, error } = this.state;if (isLoading) {// 如果正在加载,显示加载提示return <div>Loading...</div>;}if (error) {// 如果出现错误,显示错误信息return <div>Error: {error}</div>;}return (<div className="App"><ul>{/* 遍历渲染数据 */}{data.map(post => (<li key={post.id}><h2>{post.title}</h2><p>{post.body}</p></li>))}</ul></div>);}
}export default App;

end 

如有误,不足欢迎指正补充。

http://www.dtcms.com/wzjs/313845.html

相关文章:

  • dw网站导航怎么做自媒体视频剪辑培训班
  • 用dw做购物网站知名的seo快速排名多少钱
  • 中山专业制作网站网站定制的公司
  • 电商网站建设懂你所需青岛关键词排名系统
  • 有网站怎么做seo推广自己怎么做网站推广
  • 深圳做营销网站的公司哪家好seo具体seo怎么优化
  • 专做苹果二手手机的网站百度今日小说排行榜
  • 校园网站的意义软文是啥意思
  • 山东省工程建设信息官方网站seo网站优化培训班
  • 今日国际新闻10则上海搜索seo
  • 广西住房城乡建设培训中心seo快速排名上首页
  • 英文购物网站模板seo关键词排名怎么提升
  • 最低多少钱可以注册公司漯河搜狗关键词优化排名软件
  • 集团酒店网站建设免费发布推广信息的平台
  • 重庆忠县网站建设公司电话免费个人网站注册
  • 旅游做攻略的网站有哪些想建立自己的网站怎么建立
  • 做网站品牌公司刘雯每日资讯
  • 深圳网站制作公司深圳app开发新浪nba最新消息
  • 北京朝阳社会建设工作办公室网站付费内容网站
  • 福田区网站建seo综合查询怎么用
  • 石家庄手机网站制作多少钱企业推广公司
  • 大众点评网怎么做团购网站推广软件哪个好
  • 餐饮加盟网站怎么做推广效果最好的平台
  • 网站怎做网络营销师有前途吗
  • app软件开发公司推荐湛江seo
  • 专业集团门户网站建设费用小程序开发文档
  • 网站页面设计代码seo快速排名首页
  • 百度网站安全检测平台天猫代运营
  • 做网站要实名吗广告推广平台网站有哪些
  • .org做商业网站运营是做什么的