为你的 React 面试编程作业做好准备

2025-06-04

为 React 面试做好准备

编码任务

所有面试都令人望而生畏。我知道你搜索各种面试技巧和预期问题时的感受。经过几次面试后,我得到了我的第一份开发工作,我想分享我在整个过程中学到的东西。希望对你有所帮助。

编码面试有很多种类型,但在这篇文章中,我将只处理给定时间内的编码任务

您需要在有限的时间内构建一些简单的东西(UI、框架/库/语言的基本练习)。

这是一份 React 编程作业。我们先假设这是一份真实的面试作业。 (我从这个视频里找到了这份作业。实际上,他在三次面试中都被要求完成这份作业。 我附上了代码,不过在看之前,请先尝试自己写一下。

编码任务

任务

  1. 您将使用 create-react-app 和react-router构建一个 Web 应用程序。
  2. 使用来自randomUser API的用户数据,您将呈现 10 个用户的列表。(图片 1)
  3. 每个用户的姓名都显示在列表中,点击后会跳转到相应的用户详情页面,其中包含用户照片、用户名和电子邮件地址。(图2)

1. 仔细阅读并确定优先顺序

你应该仔细阅读说明。不要略读。紧张的时候,你很可能会错过细节。像校对员一样仔细阅读,然后确定任务的优先级。想想他们想从你这里看到什么。并仔细检查截止日期
(可选:排除最后5-10分钟进行排练。)

从我们上面的作业来看,面试官想看看我们是否会使用Fetch API、map、useEffect 和 react-router。所以这些都是至关重要的功能。

2. 坚持基本原则

如果你之前没有开发经验,而且申请的是初级职位,面试官通常不会指望你能写出高级代码。他们更看重的是你是否具备最低的资质。

  • 确保组织好您的代码(我使用更漂亮的)并使用适当的语义标签(不要过度使用div)。
  • 如果您要从某处复制并粘贴一行代码,请确保您没有使用var
  • 不要忘记为图像添加 alt 属性,并为每个地图子项添加唯一键。

这些都是非常基础的知识,每个人都知道。但是,如果你在面试中漏掉了一些大家都知道的知识,会发生什么呢?你肯定不想知道。

3. 进行排练

在我的两次面试中,我被要求将代码上传到公共代码库,以便面试官可以拉取我的代码库并检查代码。这意味着他们拉取代码库并执行你的代码时应该不会出现任何问题。

想象一下,你有一个演示文稿。你准备好了一切,大家都在等你演示。但在最后一刻,你的 PPT 文件打不开,或者投影仪突然连接不上。你无法保证你的代码在另一台机器上也能成功执行。

因此,如果您还有时间,请不要用附加功能或 CSS 来打动他们,而是尝试将您的代码拉到另一个文件夹中,并确保一切顺利。

3.你应该能够解释你的代码。

面试官会逐行阅读你的代码,并询问一些关于代码的问题。
可能的问题包括:

  1. 为什么使用<div>而不是<button>
  2. React 中有什么key?为什么我们不应该将{i}其用作键?
  3. useEffect hook 中的第二个参数有什么用?为什么传递了一个空数组?

4. 不要在代码审查中采取防御态度

我知道有时候很难把自己和代码分开。但没人想雇佣一个对每个反馈都采取防御态度的人。

面试官可能会指出你的错误,以及哪些地方可以做得更好。保持接受的态度,并感激他们的反馈。(有多少专业的开发人员会免费审阅和评论你的代码?)他们也想看看你对以后的代码评审会作何反应。

最后,这是我为这次模拟作业编写的代码。

///App.js

import "./App.css";
import { BrowserRouter as Router, Switch, Route } from "react-router-dom";
import Home from "./components/Home";
import UserDetail from "./components/UserDetail";

function App() {
    return (
        <Router>
            <div className="App">
                <Switch>
                    <Route path="/profile" exact component={Home} />
                    <Route path="/profile/:id" exact component={UserDetail} />
                </Switch>
            </div>
        </Router>
    );
}

export default App;
Enter fullscreen mode Exit fullscreen mode
///components/Home.js

import React, { useEffect, useState } from "react";
import { Link } from "react-router-dom";

export default function Home() {
    const [users, setUsers] = useState([]);

    useEffect(() => {
        fetchUsers();
    }, []);

    const fetchUsers = async () => {
        const res = await fetch("https://randomuser.me/api/?results=10");
        const data = await res.json();
        try {
            setUsers(data.results);
        } catch (err) {
            console.log(err);
        }
    };

    return (
        <div className="userList">
            {users &&
                users.map(user => (
                    <li key={user.login.uuid}>
                        <Link
                            to={{
                                pathname: `/profile/${user.login.uuid}`,
                                state: { user }, //pass the data so that you can use it via useLocation
                            }}
                        >
                            {user.name.first} {user.name.last}
                        </Link>
                    </li>
                ))}
        </div>
    );
}
Enter fullscreen mode Exit fullscreen mode
///components/UserDetail.js

import React from "react";
import { useLocation } from "react-router-dom";
//get the corresponding data sent from Link state

export default function UserDetail() {
    let params = useLocation();
    const { name, location, email, dob, picture } = params.state.user;

    return (
        <div>
            <h2>
                {name.first} {name.last}
            </h2>
            <img src={picture.large} alt={name.first} />
            <p>
                {dob.age} / {location.country}
            </p>
            <p>{email}</p>
        </div>
    );
}
Enter fullscreen mode Exit fullscreen mode

结论

无论你为面试做了多少准备,都无法保证你每次都能成功。是啊,生活就是这么糟糕。如果你搞砸了一次,别让它打击你。

我在面试中也犯了一些愚蠢的错误。但人之常情的好处在于,你可以从自己的缺点中吸取教训。失败会让你知道究竟哪里可以改进,然后你就可以从那里开始。

求职过程并非短跑,而是一场马拉松。不要因被拒或犯错而感到沮丧,坚持申请。

祝编码面试好运!

封面照片由Arnold FranciscaUnsplash上拍摄
文章来源:https://dev.to/hannahchoi/prepare-your-first-react-interview-57b6
PREV
Vue 和 GraphQL 与 Hasura 视频课程 Vue 和 GraphQL 与 Hasura 视频课程 1. 什么是 GraphQL 2. 使用 Hasura 引擎创建自动生成的 CRUD API 3. 使用远程模式和事件触发器扩展 CRUD API 4. 使用管理员密钥保护 Hasura GraphQL 端点 5. 在现有数据库上本地运行 Hasura 引擎 6. 使用 Apollo 客户端设置 Vue 应用程序并查询数据 7. 执行 GraphQL 查询时的不同陷阱 8. 在模板中使用 ApolloQuery 组件 9. 在我们的 Vue 应用程序中使用 GraphQL 突变插入帖子的不同方法 10. 使用 delete_posts 突变有条件地删除帖子 11. 使用订阅在您的 Vue 应用程序中配置实时更新 12. 在定义查询以获取部分更新时使用 subscribeToMore 13. 通过将 subscribeToMore 移动到模板来使其更具声明性
NEXT
为什么没有人长大后想成为一名 DevOps 工程师