react基础2

一、React 的三大核心特点是什么?

  1. 声明式编程 ‌:通过JSX描述UI最终状态,开发者无需操作DOM细节(如<div>{count}</div>);
  2. 组件化‌:将UI拆分为独立可复用的组件(如函数组件、类组件);
  3. 一次学习,多端编写‌:支持Web、Native(React Native)、SSR等场景。

二、React 中如何实现条件渲染?

  1. JS表达式‌:在JSX中直接使用逻辑运算符
javascript 复制代码
{isLoggedIn && <UserPanel />}
  1. 变量存储元素‌:
ini 复制代码
let message = null;
if (error) message = <ErrorBox />;
return <div>{message}</div>;
  1. 三元运算符‌:
javascript 复制代码
{score > 60 ? <Pass /> : <Fail />}

三、什么是 React 的合成事件(SyntheticEvent)?

React 封装浏览器原生事件,提供跨浏览器一致的事件对象。

特点‌:

  • 事件委托:所有事件冒泡到顶层document处理,提升性能;
  • 自动回收:事件对象在回调结束后会被清除,需用e.persist()手动保留;
  • 统一API:如onClick对应click事件,onChange统一处理表单输入。

四、如何用 PropTypes 进行类型检查?

  1. 安装prop-types库;
  2. 在类组件中定义静态属性:
scala 复制代码
import PropTypes from 'prop-types';

class Button extends React.Component {
  static propTypes = {
    color: PropTypes.oneOf(['red', 'blue']).isRequired,
    onClick: PropTypes.func
  };
}
  1. 函数组件中使用:
css 复制代码
function Button({ color }) { ... }
Button.propTypes = { color: PropTypes.string };

五、React 组件是什么?

React 组件是一个接收props(输入参数)并返回描述UI的React元素(输出)的函数或类。

scala 复制代码
// 函数组件
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}
// 类组件
class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}

六、React.Fragment 的作用是什么?

用于包裹多个子元素而不添加额外DOM节点:

javascript 复制代码
function Table() {
  return (
    <React.Fragment>
      <td>Cell 1</td>
      <td>Cell 2</td>
    </React.Fragment>
  );
}
// 简写语法:
<>
  <td>Cell 1</td>
  <td>Cell 2</td>
</>

七、React Hooks 的使用规则有哪些?

  1. 顶层调用‌:只能在函数组件的最外层或自定义Hook中使用,不可嵌套在条件/循环中;
  2. 仅React函数调用‌:只能在React组件函数或自定义Hook中调用;
  3. 命名规范 ‌:自定义Hook必须以use开头(如useToggle)。

八、如何阻止组件渲染?

在组件中返回null,不会触发生命周期方法(如componentDidUpdate):

javascript 复制代码
function Banner({ shouldShow }) {
  if (!shouldShow) return null; // 阻止渲染
  return <div>Special Offer!</div>;
}

九、如何设置组件默认的props值?

通过defaultProps静态属性:

matlab 复制代码
function Button({ size }) { ... }
Button.defaultProps = {
  size: 'medium' // 未传递size时默认值为'medium'
};

十、React 元素(Element)和组件(Component)有什么区别?

  • 元素 ‌:普通JS对象,描述DOM节点及其属性,如<div className="test" />会被编译为:
css 复制代码
{ type: 'div', props: { className: 'test' }, children: null }
  • 组件‌:接收props并返回元素的函数或类,可包含逻辑和状态管理。
相关推荐
同志3271310 分钟前
用HTML+CSS做了一个网易云音乐客户端首页
前端·css
小猪欧巴哟12 分钟前
pnpm install 安装项目依赖遇到 illegal operation on a directory, symlink 问题
前端·vue.js
独角仙梦境12 分钟前
🚀🚀🚀学习这个思路,你也能手撸自己的专属vip脚手架🚀🚀🚀
前端
CJWbiu15 分钟前
Github Action + docker 实现自动化部署
前端·自动化运维
关山16 分钟前
在TS中如何在子进程中动态实例化一个类
前端
吃瓜群众i16 分钟前
兼容IE8浏览器的8个实用知识点
前端·javascript
前端烨20 分钟前
vue3子传父——v-model辅助值传递
前端·vue3·组件传值
猫头虎36 分钟前
如何解决IDE项目启动报错 error:0308010C:digital envelope routines::unsupported 问题
javascript·ide·vue.js·typescript·node.js·编辑器·vim
Mintopia1 小时前
Three.js 在数字孪生中的应用场景教学
前端·javascript·three.js
da-peng-song1 小时前
ArcGIS arcpy代码工具——根据属性结构表创建shape图层
javascript·python·arcgis