1.React.FC是一个函数式组件,是在TypeScript使用一个泛型,FC就是FunctionComponent的缩写,事实上React.FC可以写成React.FunctionComponent

const App: React.FunctionComponent<{ message: string }> = ({ message }) => (<div>{ message }</div>
);//简写
interface PropsType{message : string;
}
const App: React.FC<PropsType> = ({ message }) => ( //{ message }相当于解构赋值,从props中解构<div>{ message }</div>
);//声明了一个函数组件App   泛型为{message: string}
//我能不能这么理解  泛型就是给组件里面使用的参数指定类型 

2. React.FC 包含了 PropsWithChildren 的泛型,不用显式的声明 props.children 的类型。React.FC<> 对于返回类型是显式的,而普通函数版本是隐式的(否则需要附加注释)。

3.React.FC提供了类型检查和自动完成的静态属性:displayNamepropTypesdefaultProps(注意:defaultProps与React.FC结合使用会存在一些问题)。

4.我们使用React.FC来写 React 组件的时候,是不能用setState的,取而代之的是useState()useEffect等 Hook API。

//组件实现实时时间刷新显示
import React, {useState, useEffect} from 'react'; //引入依赖
export App: React.FC<{}> = (props) => { //泛型里面有对象{ 属性名 }(解构)  泛型为空对象就直接写propsconst [date, setDate] = useState(new Date());  //useState()括号里面的值给dateuseEffect(() => {const timer = setInterval(() => {setDate(new Date()); //setDate() 括号里面的值给date   date的值只能通过setDate()设置}, 1000)}, []);return (<div><h3>现在时间是</h3><p>{ date.toLocaleTimeString }</p></div>)
}  

(1)const [date, setDate] = useState(new Date());

(2)useState很简单,就相当于class函数式组件中的state,useState(值),其中的值表示初始化           值,date表示接收值,setDate表示设置值

(3)可以把 useEffect Hook 看做componentDidMount(组件挂载完成) componentDidUpdate(组             件更新完成) 和 componentWillUnmount(组件销毁调用) 这三个函数的组合

(4)useEffect最后[]中括号中的参数表示当此参数更新时,其中的方法再次执行一遍,如果没有             参数,则是空。

(5)useEffect里的return表示组件卸载的时候执行的动作,

(6)useEffect会在组件加载完成以后,执行一次,所以有第一条中,其可以控制三个生命周期

(7)如果没有后面的参数,甚至没有[],即useEffect(()=>{}),这种情况下,每当页面中useState值发生变化,useEffect中的代码就会执行一次,这是不可取的!!

React.FC详细解说相关推荐

  1. React的React.FC与React.Component的初步认识

    React 的组件可以定义为 函数(React.FC<>)或class(继承 React.Component) 的形式. 一.React.FC<> 1.React.FC是函数式 ...

  2. React的React.FC与React.Component

    React的组件可定义为函数(React.FC<>)或class(继承React.Componnent)的形式 ###React.FC<> 1.React.FC是函数式组件 是 ...

  3. react memo 和 react.fc的使用

    1.memo 介绍: React.memo 为高阶组件.它与 React.PureComponent 非常相似,但它适用于函数组件,但不适用于 class 组件. 如果你的函数组件在给定相同 prop ...

  4. TypeScript React

    环境搭建 我们当然可以先用脚手架搭建React项目,然后手动配置成支持TypeScript的环境,虽然比较麻烦,但可以让你更清楚整个过程.这里比较麻烦,就不演示了,直接用命令配置好. npx crea ...

  5. React Router 学习

    本次使用react-router 版本为 5.0.1 本教程前提是你的应用程序是一个web应用程序,使用'react-router-dom'包来实现页面的路由 在React router中有三种类型的 ...

  6. react和nodejs_如何使用React,TypeScript,NodeJS和MongoDB构建Todo应用

    react和nodejs In this tutorial, we will be using TypeScript on both sides (server and client) to buil ...

  7. react native loading动画_TypeScript for React (Native) 进阶

    I. 为何要用TypeScript 我们公司在德国还有个团队. 我们这次要接他们的一个库. 其中的一个API要求我们传入参数, 这个API是这样定义的: /** * @param {Object} i ...

  8. React+TS学习和使用(三):React Redux和项目的路由配置

    开启学习react+ts,本篇主要是学习使用React Redux和项目的路由配置 一.React Redux 需求:使用TS+React Redux实现一个累加. A. 安装 $ yarn add ...

  9. React + TS项目开发小技巧总结

    一.react hook知识 1.基本使用 最常用的Hook,有两个:useState.useEffect import React, { useState } from "react&qu ...

最新文章

  1. 【BZOJ】1003: [ZJOI2006]物流运输trans(SPFA+DP)
  2. java AST 表达式_java 编译时注解-AST 抽象语法树简介
  3. JSP简单练习-JSP动作指令
  4. P3805 【模版】manacher算法(manacher)
  5. http压缩方法(IIS 6.0 与IIS 7.0的详解)
  6. CMD各段定义与分配方法指引
  7. QT之深入理解QThread
  8. Linux 两台服务器之间传输文件
  9. Excel to SQL(2)
  10. 使用YOLO V4通过社交距离和口罩检测来缓解COVID
  11. PHP7.1 狐教程【旧】不在更新,请点击新连接查看
  12. Inside Google’s language detection tool
  13. 计算机应用与维修的视频,开关电源原理与维修视频全集(1-30集)
  14. 数据挖掘:概念与技术(第三版)之第四章的学习记录
  15. MSP430单片机个人学习笔记
  16. mysql学习心得总结
  17. 连连看消除算法和最佳路径推荐
  18. 四个角不是直角的四边形_四边形的特点是有四条直的边和四个直角对吗
  19. 爬取获取邮箱内容QQ邮箱or163邮箱
  20. 【CocosBuilder 开发系列之一】cocos2dx使用CocosBuilder(编辑器)完成基础骨骼动画

热门文章

  1. 拉卡拉支付掀起支付行业新格局
  2. Hive案例之股票分析
  3. uni-app 使用web的echarts画图表
  4. win10 桌面的的文件都不见了 提示不注销保存都文件都为临时_无网也能传文件?!Win10 自带的“就近共享”功能这么腻害你知道吗?...
  5. 每天自动备份MySQL数据库的shell脚本
  6. matlab中interp2的python实现(经matlab测试通过)
  7. 把梳子卖给和尚(一个经典的营销故事)
  8. 阿里天池Python训练营-异常处理
  9. spring security_一文肝爆Spring安全框架Spring Security
  10. S4 HANA BP 新增客商公司代码数据