当前位置:实例文章 » HTML/CSS实例» [文章]React面试题汇总

React面试题汇总

发布人:shili8 发布时间:2025-01-18 11:13 阅读次数:0

**React 面试题汇总**

作为一个前端开发者,掌握 React 是非常重要的。以下是 React 面试题的汇总,涵盖了常见的问题和一些更复杂的场景。

### 一、基本概念1. **什么是 React?**
* React 是一个用于构建用户界面的 JavaScript 库。
2. **React 的主要特点是什么?**
* 组件化、虚拟 DOM、JSX 等。
3. **什么是组件?**
*一个独立的 UI 部分,通常是一个函数或类。

### 二、组件1. **如何定义一个 React 组件?**
* 使用 `function` 或 `class` 定义一个组件。
2. **什么是 props?**
* 组件之间传递数据的方式。
3. **如何使用 props?**
* 在父组件中传递 props 给子组件,子组件通过 `props` 接收。

jsx// ParentComponent.jsimport React from 'react';
import ChildComponent from './ChildComponent';

function ParentComponent() {
 return (
 <div>
 <h1>Parent Component</h1>
 <ChildComponent name="John" age={30} />
 </div>
 );
}

export default ParentComponent;

// ChildComponent.jsimport React from 'react';

function ChildComponent(props) {
 console.log(props); // {name: "John", age:30}
 return (
 <div>
 <h2>Child Component</h2>
 <p>Name: {props.name}</p>
 <p>Age: {props.age}</p>
 </div>
 );
}

export default ChildComponent;


4. **什么是 state?**
* 组件内部的数据。
5. **如何使用 state?**
* 使用 `this.state` 或 `useState` Hook。

jsx// Counter.jsimport React, { useState } from 'react';

function Counter() {
 const [count, setCount] = useState(0);

 return (
 <div>
 <p>Count: {count}</p>
 <button onClick={() => setCount(count +1)}>+</button>
 </div>
 );
}

export default Counter;


### 三、事件处理1. **如何监听组件的事件?**
* 使用 `onClick`、`onMouseOver` 等属性。
2. **如何阻止事件冒泡?**
* 使用 `event.stopPropagation()`。

jsx// Button.jsimport React from 'react';

function Button() {
 const handleClick = (event) => {
 console.log('Button clicked!');
 event.stopPropagation();
 };

 return (
 
 );
}

export default Button;


### 四、列表和键值对1. **如何渲染一个列表?**
* 使用 `map()` 或 `Array.prototype.forEach()`。
2. **如何渲染一个键值对列表?**
* 使用 `Object.keys()` 或 `Object.entries()`。

jsx// List.jsimport React from 'react';

function List() {
 const items = [
 { id:1, name: 'Item1' },
 { id:2, name: 'Item2' },
 { id:3, name: 'Item3' },
 ];

 return (
 
    {items.map((item) => (
  • {item.name}
  • ))}
); } export default List;


### 五、表单1. **如何创建一个表单?**
* 使用 `form` 元素和 `input` 元素。
2. **如何处理表单事件?**
* 使用 `onChange`、`onSubmit` 等属性。

jsx// Form.jsimport React, { useState } from 'react';

function Form() {
 const [name, setName] = useState('');
 const [email, setEmail] = useState('');

 const handleSubmit = (event) => {
 event.preventDefault();
 console.log('Form submitted!');
 console.log({ name, email });
 };

 return (
 <form onSubmit={handleSubmit}>
 <label>
 Name:
 <input type="text"
 value={name}
 onChange={(event) => setName(event.target.value)}
 />
 </label>
 

 <label>
 Email:
 <input type="email"
 value={email}
 onChange={(event) => setEmail(event.target.value)}
 />
 </label>
 <button type="submit">Submit</button>
 </form>
 );
}

export default Form;


### 六、其他1. **如何使用 React Hooks?**
* 使用 `useState`、`useEffect` 等 Hook。
2. **如何使用 Context API?**
* 使用 `React.createContext()` 和 `Provider` 组件。

jsx// Theme.jsimport React from 'react';

const theme = {
 colors: {
 primary: '#333',
 secondary: '#666',
 },
};

export default theme;


jsx// App.jsimport React, { useState } from 'react';
import ThemeContext from './ThemeContext';
import Button from './Button';

function App() {
 const [theme, setTheme] = useState({
 colors: {
 primary: '#333',
 secondary: '#666',
 },
 });

 return (
 <ThemeContext.Provider value={theme}>
 <div>
 <h1>App</h1>
 <Button />
 </div>
 </ThemeContext.Provider>
 );
}

export default App;


以上就是 React 面试题的汇总。这些问题涵盖了基本概念、组件、事件处理、列表和键值对、表单等方面。通过掌握这些知识,你将能够更好地应对面试中的挑战。

其他信息

其他资源

Top