react 函数组件

首先,明确一下,react在16.8之前,一直都是无状态组件。如果有人告诉你其在react16.8前使用函数组件进行状态管理,那他大概率是在胡扯

函数组件的定义

函数组件的定义是用函数定义,相对于类组件,函数组件更加的轻量和灵活、

复制代码
import React from 'react'

export default function App() {
  return (
    <div>App</div>
  )
}

是不是比类组件要简单多了 我们现在来看状态的定义和修改(tsx写法 用js就去除<string>)

状态定义和修改

复制代码
export default function App() {
   const [username,setusername] =useState<string>('')

  return (
    <div>
      {username}
      <input value={username} onChange={(e)=>setusername(e.target.value)}></input>
    </div>
    
  )
}

这个代码,是用useState 进行的状态定义 这个是一个 react的 hooks 如果感兴趣可以看源码

如果要了解,可以查看我之前的vue自定义hooks 这个hooks返回一个数组数组第一个是变量名 第二个是修改变量的方法

接口的请求

要先明确一点 react函数组件是没有生命周期的,那么想要在加载页面的时候进行接口请求,我们要怎么办呢? 这里需要使用另一个hooks useEffect

复制代码
  interface UserType{
    name?:string
    password?:string
    
  }
   const [userlist,setuserlist] =useState<Array<UserType>>([])
   let getdata:()=>Promise<void>=async ()=> {
          let data:UserType= await axios.get(`https://api.github.com/users/`)

          setuserlist([...userlist,data])
   }
   useEffect(()=>{
    getdata()
   })

接口请换成自己的,我这个仅供参考 如果是jsx 不需要定义类型可以去除 整个 interface

()=>promise Usertype

复制代码
onst [userlist,setuserlist] =useState<Array<UserType>>([])
   let getdata=async ()=> {
          let data= await axios.get(`https://api.github.com/users/`)

          setuserlist([...userlist,data])
   }
   useEffect(()=>{
    getdata()
   })

如果开发过程中 有什么关于react的 函数组件方面的问题,可以私信我

如果我的文章可以帮助到各位,请给博主一个免费的关注和一个赞

相关推荐
米米商聊37 分钟前
同名附件为什么被 Map 覆盖?重复键与一对多索引
前端·javascript
echome8882 小时前
Python 异常处理:try、else、finally 的正确搭配
开发语言·前端·python·异常处理·编程技巧
时间的情敌2 小时前
OpenLayers 实战|Vue3 + OpenLayers 完整工程案例(加载天地图、要素、弹窗、绘制、WFS)
前端·openlayers
陈随易2 小时前
下载神器!Motrix 停更三年后重写回归
前端·后端·程序员
前端的日常2 小时前
一个人+AI做情侣食谱小程序,0 费用的服务器
前端·后端
计算机魔术师3 小时前
谷歌搜索广告踩刹车,AI广告成为救命稻草
前端
总要学点什么3 小时前
第81篇:数据可视化-PM2.5分布——让圆点的胖瘦替每座城市报出浓度
前端·信息可视化·echarts·cesium·空间分析
IT_陈寒3 小时前
Vue的v-for里用了个临时变量,页面直接挂了
前端·人工智能·后端
hunter_0763 小时前
一次 iOS 真机签名 409 的完整排查:证书、设备、描述文件为什么总是"对不上"
前端
枣把儿3 小时前
开源!公众号排版+一键发布工具懒人版
前端