前端/移动开发面试题更新 2026-08-05

请解释 React 中不可变数据(immutable)的概念,并说明其在 React 开发中的作用。同时,介绍在 React 中实现不可变数据的主要方式有哪些?

前端/移动开发技术原理React

考察说明

考查对 React 中不可变数据概念、作用及实现方式的理解。

回答思路

  1. 【回答框架 1】不可变数据(immutable)指数据一旦创建就不能被修改,任何更新都会生成新的数据对象,原数据保持不变。在 React 中,state 和 props 应被视为不可变,直接修改它们可能导致组件无法正确更新。
  2. 【回答框架 2】作用主要体现在:一是有利于 React 的浅比较机制,因为引用不变则视为状态未变,从而优化渲染性能;二是便于状态管理和调试,可以追踪状态变化历史;三是避免因直接修改 state 引发的难以定位的 bug。
  3. 【回答框架 3】在 React 中实现不可变数据的方式有:使用展开运算符(...)或 Object.assign 创建新对象;使用数组的 map、filter、concat 等方法返回新数组;或者借助 Immutable.js、Immer 等库,其中 Immer 通过 Proxy 提供更直观的修改语法。
  4. 【回答框架 4】还需注意,浅拷贝只保证第一层不可变,深层嵌套数据需逐层拷贝或使用工具库;同时避免在渲染阶段直接修改 props 或 state。
  5. 【关键点 1】不可变数据是指数据变更时生成新对象,不修改原对象。
  6. 【关键点 2】React 依赖不可变数据来正确触发重新渲染和优化性能。
  7. 【关键点 3】常用实现方式有展开运算符、数组新方法以及 Immer 等库。
  8. 【易错点 1】深层嵌套数据仅用浅拷贝会导致内部引用未变,可能引发更新不生效的问题。
  9. 【易错点 2】不可变数据并不完全等同于性能优化,盲目使用可能带来额外开销。
  10. 【易错点 3】直接修改 state 是 React 中的常见错误,会导致组件不重新渲染。