React 基础面试题, React 的 JSX 和 HTML 有什么区别?
React 基础面试题, React 的 JSX 和 HTML 有什么区别?
QA
Step 1
Q:: React 的 JSX 和 HTML 有什么区别?
A:: JSX 是 JavaScript 的一种语法扩展,它允许你在 JavaScript 代码中编写类似 HTML 的结构。JSX 需要通过 Babel 等工具编译成 React.
createElement 调用,以便在浏览器中运行。而 HTML 是标记语言,不需要编译直接被浏览器解析。JSX 支持 JavaScript 表达式,允许你在模板中动态插入数据,而 HTML 则不支持这种特性。此外,JSX 的语法与 HTML 略有不同,例如 class 需要写成 className,for 属性需要写成 htmlFor。
Step 2
Q:: React 中的组件是什么?如何定义一个组件?
A:: React 中的组件是构建用户界面的基本单元。组件可以是类组件或函数组件。类组件是通过继承 React.
Component 类定义的,而函数组件是普通的 JavaScript 函数,它们接收 props 作为参数并返回 React 元素。以下是一个函数组件的示例:
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
Step 3
Q:: React 中的 state 是什么?如何管理 state?
A:: state 是 React 组件中的一种数据结构,用于表示组件的当前状态。state 是组件内部管理的,可以通过 setState()
方法更新。当 state 发生变化时,React 会重新渲染组件,以反映最新的状态。函数组件可以使用 useState 钩子来管理 state。例如:
const [count, setCount] = useState(0);
Step 4
Q:: 什么是 props?props 和 state 有什么区别?
A:: props 是 React 组件接收的数据,它们是从父组件传递来的。组件无法修改 props,只能读取它们。state 是组件内部的数据,可以由组件自身更新。props 用于组件之间的数据传递,而 state 用于组件内部状态的管理。
Step 5
Q:: React 中的生命周期方法有哪些?每个方法的作用是什么?
A:: React 的生命周期方法主要存在于类组件中,分为挂载、更新和卸载三个阶段。常见的方法有:
-
componentDidMount()``:
组件挂载后调用,通常用于网络请求或订阅事件。
-
componentDidUpdate(prevProps, prevState)``:
组件更新后调用,用于对比当前和之前的 props 或 state,以决定是否进行一些操作。
-
componentWillUnmount()``:
组件卸载前调用,用于清理定时器、取消订阅等。