React.FC和React.ReactNode和JSX.Element和React.ReactNode的区别与使用
程序员文章站
2022-07-02 19:19:14
...
一、React.FC
import React, { useState } from 'react';
export interface UserProps {
updateModalVisible: boolean;
}
const User: React.FC<UserProps> = () => {
let [count, setCount] = useState(4);
const changeVal = () => {
count++;
setCount(count);
};
return <div style={{ padding: 20 }}>
<h1>User页面</h1>
<h2>{count}</h2>
<button onClick={changeVal}>改变我的值</button>
</div>;
};
export default User;
二、React.ReactElement
ReactElement is an object with a type and props.
ReactElement 是一个有type和props的对象.
被createElement函数调用,根据环境设置对应的属性
export interface AvatarListProps {
Item?: React.ReactElement<AvatarItemProps>;
size?: SizeType;
maxLength?: number;
excessItemsStyle?: React.CSSProperties;
style?: React.CSSProperties;
children: React.ReactElement<AvatarItemProps> | React.ReactElement<AvatarItemProps>[];
}
三、JSX.Element
JSX.Element = ReactElement
JSX.Element-> React.createElement的返回值
class Class implements JSX.Element {
// @ts-ignore
key: React.Key | null | undefined;
props: any;
type: any;
}
四、React.ReactNode
ReactNode 可以是 ReactElement, ReactFragment, string ,a number 或者一个数组 ReactNodes, 或者null,或者 undefined, 或者 a boolean:
React.ReactNode->组件的返回值
render(): ReactNode;
推荐阅读
-
PHP的new static和new self的区别与使用
-
rem与em的使用和区别详解【转】
-
vue安装和使用scss及sass与scss的区别详解
-
深入理解ob_flush和flush的区别(ob_flush()与flush()使用方法)
-
linux中install命令和cp命令的使用与区别
-
ref和out的使用与区别
-
【Spring Boot实战与进阶】过滤器和拦截器的使用及其区别
-
R语言中cbind、rbind和merge函数的使用与区别
-
nas硬盘和普通硬盘有什么区别(带你了解nas硬盘的使用寿命与性能)
-
React.FC和React.ReactNode和JSX.Element和React.ReactNode的区别与使用