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

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的 函数组件方面的问题,可以私信我

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


http://www.kler.cn/news/325653.html

相关文章:

  • 《程序猿之Redis缓存实战 · 列表类型》
  • DMDSC更换DCR和VOTE磁盘
  • 云计算Openstack Keystone
  • JVM 基础知识(基础组成 )
  • 寻找两个正序数的中位数(C)
  • Json 在线可视化工具,分享几个
  • K8S篇之解析service和ingress区别
  • 深度学习--------------------------------门控循环单元GRU
  • 利用git将项目上传到github
  • 指定PDF或图片多个识别区域,识别区域文字,并导出到Excel文件中
  • 25届秋招总结——保持自信、坚定选择
  • 【C++算法】6.双指针_有效三角形的个数
  • Android 10.0 系统framework层修改第三方app的dpi的属性功能实现
  • mmseqs2蛋白质聚类数据格式转化
  • C++进阶知识1继承
  • 从零预训练一个tiny-llama#Datawhale组队学习Task2
  • [题解] Codeforces Round 976 (Div. 2) A ~ E
  • OpenCV-图像拼接
  • C++游戏开发:构建高性能、沉浸式游戏体验的关键
  • 无人机之集群路径规划篇
  • 「系列投研|01」建立自己的移动比特币银行——赛道概况
  • Python办公自动化案例:实现XMind文件转换成Excel文件
  • AIGC: 从两个维度快速选择大模型开发技术路线
  • el-table初始化时根据传入数据选中某些行
  • HTML中的盒子模型(内置练习及答案)
  • 医院排班|医护人员排班系统|基于springboot医护人员排班系统设计与实现(源码+数据库+文档)
  • git 查看已经commit但是还没有push的所有文件变动内容
  • upsample nearest 临近上采样实现方式
  • Python: RAII:函数执行完毕,socket对象主动发送fin
  • golang Get: context deadline exceeded (Client.Timeout exceeded while aw