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

2025React面试题集锦

1. React 是什么?它有哪些主要特点?

React 是由Facebook开发的开源JavaScript库,用于构建用户界面(UI),尤其适合开发复杂的单页应用(SPA)。
主要特点

  • 声明式编程:只需描述UI应该是什么样子(如return <div>Hello</div>),React会自动处理DOM更新,无需手动操作DOM。
  • 组件化:将UI拆分为独立、可复用的组件(如按钮、表单),便于维护和复用。
  • 虚拟DOM:React会在内存中维护一个与真实DOM对应的虚拟DOM,通过对比虚拟DOM的差异(Diffing算法),只更新必要的部分,提升性能。
  • 单向数据流:数据通过props从父组件流向子组件,避免数据混乱,便于调试。
  • 跨平台:基于React可扩展到移动端(React Native)、桌面端(Electron)等平台。

2. 什么是JSX?

JSX(JavaScript XML)是React中用于描述UI的语法扩展,允许在JavaScript中直接编写类似HTML的代码。
特点

  • 本质是React.createElement()的语法糖,最终会被Babel编译为JavaScript对象。
  • 支持嵌入JavaScript表达式(用{}包裹),如<div>{user.name}</div>
  • 与HTML的区别:标签闭合(如<img />)、className替代class、htmlFor替代for等。
  • 示例:
    const element = <h1>Hello, {name}</h1>; // JSX语法
    // 编译后等价于:
    const element = React.createElement('h1', null, `Hello, ${name}`);
    

3. 类组件和函数组件有什么区别?

维度 类组件 函数组件
定义方式 基于ES6类,继承React.Component 普通JavaScript函数或箭头函数
状态管理 使用this.statethis.setState 依赖Hooks(如useState
生命周期 有内置生命周期方法(如componentDidMount useEffect模拟生命周期
this绑定 需要处理this指向问题(如箭头函数绑定) this,更简洁
代码风格 较繁琐,适合复杂逻辑 更简洁,推荐用于大多数场景
示例 class MyComponent extends React.Component { render() { return <div />; } } function MyComponent() { return <div />; }

现状:函数组件+Hooks已成为React主流写法,类组件逐渐被替代。

4. React中的状态(state)是什么?如何更新状态?

state 是组件内部管理的动态数据,当state变化时,组件会重新渲染。

  • 特点:私有性(仅组件内部可访问)、可变性(需通过特定方式更新)。
  • 类组件中更新:使用this.setState(),是异步操作,会触发组件重渲染。
    this.setState({ count: this.state.count + 1 }, () => {// 回调函数中可获取更新后的stateconsole.log(this.state.count);
    });
    
  • 函数组件中更新:使用useState Hook返回的更新函数,同样是异步的。
    const [count, setCount] = useState(0);
    setCount(prevCount => prevCount + 1); // 推荐使用函数形式,确保依赖前一次状态
    

5. React中的props是什么?

props(properties的缩写)是从父组件传递到子组件的数据,类似函数参数。

  • 特点:只读性(子组件不能修改props,若需修改,需由父组件更新)、单向传递(父→子)。
  • 示例:
    // 父组件
    function Parent() {return <Child name="Alice" age={18} />;
    }// 子组件
    function Child(props) {return <div>{props.name}, {props.age}</div>;
    }
    
  • 可通过PropTypes或TypeScript定义props类型,增强代码健壮性。

6. 什么是受控组件和非受控组件?

  • 受控组件:表单元素(如input、select)的值由React的state控制,通过onChange事件同步state和表单值。
    function Input() {const [value, setValue] = useState('');return <input value={value} onChange={(e) => setValue(e.target.value)} />;
    }
    
  • 非受控组件:表单元素的值由DOM自身管理,通过ref获取值,类似原生HTML。
    function Input() {const inputRef
http://www.xdnf.cn/news/19832.html

相关文章:

  • Java 与 Docker 的最佳实践
  • wins中怎么用一个bat文件启动jar包和tomcat等多个服务
  • Linux tail 命令使用说明
  • 【C++详解】C++11(四) 包装器:function、bind、STL中⼀些变化
  • 【AI论文】UI-TARS-2技术报告:借助多轮强化学习推进图形用户界面(GUI)智能体发展
  • 20. 云计算-华为云-云服务
  • Linux Centos7搭建LDAP服务(解决设置密码生成密文添加到配置文件配置后输入密码验证报错)
  • 分享星空投影灯方案
  • 高效菜单管理页面:一键增删改查
  • Word 常用快捷键大全:提升文档处理效率的必备技巧​
  • FastGPT源码解析 Agent工作流编排后端详解
  • Ansible自动化运维:从入门到精通
  • 【面试题】词汇表大小如何选择?
  • React实现点击按钮复制操作【navigator.clipboard与document.execCommand】
  • Elasticsearch面试精讲 Day 6:Query DSL查询语法详解
  • 【JAVA】windows本地跑zookeeper,然后使用代码连接服务获取znode数据
  • 【leetcode】130. 被围绕的区域
  • NLP插曲番外 · 猫猫狐狐问答夜话
  • 分词器详解(一)
  • 信息融智学=信息哲学+信息科学+信息技术+信息系统工程+信息处理之智
  • 组长跟我说,她招人看重的是数据分析能力
  • 计算机视觉(七):膨胀操作
  • 机器学习 - Kaggle项目实践(8)Spooky Author Identification 作者识别
  • awk命令
  • GitHub 上那些值得收藏的英文书籍推荐(计算机 非计算机类)
  • 逻辑回归:从原理到实战的完整指南
  • 刻意练习理论
  • 群晖为家纺企业 500 名员工打造企业网盘,赋能家纺制造效率飞跃
  • Python数据分析与处理(二):将数据写回.mat文件的不同方法【超详细】
  • 第二章 Windows 核心概念通俗解析