《前端面试题》- React - 如何区分函数组件和类组件

ops/2025/1/15 21:41:53/

问题

如何区分函数组件和类组件?

答案

可以使用instanceof 或者Component.prototype.isReactComponent。

示例

函数组件

export default function FunctionComonent() {if(FunctionComonent.prototype.isReactComponent){console.log('FunctionComonent是类组件')}else{console.log('FunctionComonent函数式组件')}return <div>这是函数组件</div>
}

类组件

import React from 'react';export default class ClassComponent extends React.Component {constructor(props) {super();if(ClassComponent.prototype.isReactComponent){console.log('ClassComponent 是类组件')}else{console.log('ClassComponent函数式组件')}}render() { return (<div>这是一个Class组件</div>) }
}

引用

import React from 'react';
import ReactDOM from 'react-dom';
import ClassComponent from './compareFunctionComponentAndClassComponent/ClassComponent.jsx';
import FunctionComponent from './compareFunctionComponentAndClassComponent/FunctionComponent';const clas = new ClassComponent();
console.log(`ClassComponent is Class  ${clas instanceof React.Component}`);const func = new FunctionComponent();
console.log(`FunctionComponent is Class  ${func instanceof React.Component}`);ReactDOM.render(<React.StrictMode><ClassComponent /><FunctionComponent /></React.StrictMode>,document.getElementById('root')
);

结果

3a626359503570d2ab554f214f6a2dac.png

 


http://www.ppmy.cn/ops/16516.html

相关文章

GRE技术原理:揭开网络封装的神秘面纱

GRE技术原理&#xff1a;揭开网络封装的神秘面纱 概述 本文将深入探讨GRE&#xff08;Generic Routing Encapsulation&#xff0c;通用路由封装&#xff09;技术的原理。我们将从GRE的基本概念出发&#xff0c;分析其在网络中的应用场景&#xff0c;详细阐述其封装与解封装过…

推荐一个带java环境的tomcat镜像,使用jdk 1.8.0_312

镜像名称和版本&#xff1a;tomcat:10.0-jdk8拉取命令&#xff1a;docker pull tomcat:10.0-jdk8镜像tar包&#xff08;百度网盘&#xff09;&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1TM8k7Z97NYhahCrrTh3vBw?pwdrq93 提取码&#xff1a;rq93docker启动命令&am…

Golang实现一个批量自动化执行树莓派指令的软件(5)模块整合

简介 基于上篇 Golang实现一个批量自动化执行树莓派指令的软件(4)上传 已经实现了ssh的基本操作模块了&#xff0c;这里我们将这些模块进行整合。 环境描述 运行环境: Windows&#xff0c; 基于Golang&#xff0c; 暂时没有使用什么不可跨平台接口&#xff0c; 理论上支持Linux…

Cache缓存

在计算机架构中&#xff0c;缓存&#xff08;Cache&#xff09;是一种高速数据存储层&#xff0c;它存储了一部分从原始数据源&#xff08;如主内存&#xff09;频繁访问的数据副本。通过将数据暂时存储在物理上更接近处理器的位置&#xff0c;缓存能够减少数据访问的延迟&…

牛客NC199 字符串解码【中等 递归,栈的思想 C++/Java/Go/PHP】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/4e008fd863bb4681b54fb438bb859b92 相同题目&#xff1a; https://www.lintcode.com/problem/575 思路 解法和基础计算器1&#xff0c;2,3类似,递归参考答案C struct Info {string str;int stopindex;Info(str…

4.25日学习记录

[HZNUCTF 2023 preliminary]ppppop 对于php反序列化&#xff0c;在之前的学习中有过了解&#xff0c;但是对于序列化字符串的格式不是很了解&#xff0c;刚好接触这题&#xff0c;可以了解一下 序列化字符串的格式&#xff1a; 布尔型&#xff08;bool&#xff09;b&#xf…

计算机毕业设计Flask+Vue.js知识图谱音乐推荐系统 音乐爬虫可视化 音乐数据分析 大数据毕设 大数据毕业设计 机器学习 深度学习 人工智能

开发技术 协同过滤算法、机器学习、LSTM、vue.js、echarts、django、Python、MySQL 创新点 协同过滤推荐算法、爬虫、数据可视化、LSTM情感分析、短信、身份证识别 补充说明 适合大数据毕业设计、数据分析、爬虫类计算机毕业设计 介绍 音乐数据的爬取&#xff1a;爬取歌曲、歌手…

【go零基础】go-zero从零基础学习到实战教程 - 2项目初始化

到项目初始化过程了&#xff0c;这边的项目设计完全按照作者自己的喜好来进行定义和设置的&#xff0c;所以各位完全可以按照自己的偏好自喜设置哈。 首先是创建一个工作文件夹哈。 别问为啥不直接quickstart&#xff0c;因为quickstart生成的api名字是greet&#xff0c;改起来…