Đề Thi FER202 ReactJS FPTU Kỳ SU25 Chính Thức - Có Đáp Án

Anh em đang chuẩn bị bước vào phòng thi FER202 (ReactJS) và cảm thấy hơi "ngợp" trước hàng tá kiến thức về Component, Hooks hay Redux? Đừng quá lo lắng! Tại devshare.pro.vn, mình hiểu rất rõ cảm giác "học tài thi phận" của môn này. Đề thi FER202 thường không chỉ hỏi "làm web thế nào" mà còn xoáy cực sâu vào bản chất hoạt động của các hàm, khiến những ai chỉ quen code chạy được mà không hiểu sâu rất dễ "bay màu".

Để tiếp sức cho mấy bồ trong mùa thi, đặc biệt là những ai đang trầy trật cày cuốc cho đợt 2ndFE, mình xin chia sẻ lại bộ đề thi FER202 ReactJS FPTU kỳ SU25 chính thức. Đi kèm với đó là đáp án chi tiết và giải thích cặn kẽ để anh em không chỉ học vẹt mà còn hiểu tận gốc rễ vấn đề nhé!

Lưu ý nhỏ: Đây là đề thi được tổng hợp lại nhằm mục đích tham khảo, ôn tập và học nhóm. Hãy kết hợp với việc code thực chiến để tay nghề ngày càng "xịn xò" hơn, đừng chỉ thuộc lòng đáp án nha!

Nội dung trọng tâm trong đề thi FER202 SU25

Đề thi kỳ này phủ kiến thức khá rộng, đòi hỏi anh em phải nắm chắc các mảng sau:

  • Kiến thức nền tảng vững vàng về Component, JSX, Props, State.
  • Làm chủ React Hooks (useEffect, useState, useContext...).
  • Quản lý trạng thái phức tạp với ReduxMiddleware (Redux Thunk / Redux Saga).
  • Cách xử lý điều hướng, lấy tham số (params) bằng React Router.
  • Đặc biệt chú ý những câu hỏi "bẫy" liên quan đến cú pháp JSX, event handler và tối ưu hiệu suất (performance optimization).

Giờ thì không vòng vo nữa, cùng mình đi sâu vào chi tiết bộ đề "nóng hổi" này nhé!

Chi tiết đề thi FER202 SU25 (Kèm Giải Thích)

Dưới đây là các câu hỏi trích từ đề thi chính thức. Mình đã cẩn thận note lại giải thích cho từng câu để anh em thấy rõ "vì sao đúng, vì sao sai".

Question 1: How can you import functions or variables from an ES6 module?

A. By using the import keyword

B. By using the require function

C. By using the export keyword

D. By using the include directive

Đáp án: A

Giải thích: Nhanh như chớp! Trong ES6, để "kéo" (import) một hàm hoặc biến, anh em bắt buộc dùng từ khóa import. Ví dụ: import { myFunction } from './myModule.js';. Từ khóa require là của người anh em CommonJS (Node.js cũ), còn export thì dùng để xuất dữ liệu ra ngoài rồi.

Question 8: What is the initial state of a promise?

A. Fulfilled

B. Rejected

C. Pending

D. Resolved

Đáp án: C

Giải thích: Khi một Promise mới được khởi tạo, nó sẽ luôn ở trạng thái "treo" (Pending). Đợi đến khi xử lý xong xuôi nó mới chuyển sang Fulfilled (ngon lành) hoặc Rejected (toang). Đừng để bị lừa bởi từ Resolved nha, đó không phải trạng thái ban đầu!

Question 9: What is the difference between the render() method and the commit() method in React?

A. The render() method defines the component's structure, while the commit() method handles side effects.

B. The render() method handles events, while the commit() method defines the component's structure.

C. The render() method is called before the component is mounted, while the commit() method is called after the component is mounted.

D. There is no commit() method in React.

Đáp án: D

Giải thích: Lại thêm một cú lừa cực gắt! Trong React không hề tồn tại phương thức commit() nào dành cho component cả. Quá trình "commit phase" là thuật ngữ trong kiến trúc nội bộ của React (khi nó đẩy thay đổi vào DOM thật), còn khi anh em code thì xử lý side effect qua componentDidMount() hoặc useEffect() nhé.

Question 16: How can you create a new Git repository?

A. By running git init in the project directory.

B. By adding a remote repository URL.

C. By cloning an existing repository.

D. By committing changes using git commit -m.

Đáp án: A

Giải thích: Câu này thì dân IT nào cũng phải nằm lòng. Lệnh git init dùng để khởi tạo một kho chứa (repository) Git hoàn toàn mới ngay trong thư mục dự án (nó sẽ tạo ra một thư mục ẩn .git). Mấy lệnh kia là để xử lý các repo đã tồn tại rồi.

Question 17: Which command is used to install the required dependencies for a React project?

A. npm install

B. git clone

C. create-react-app

D. npm start

Đáp án: A

Giải thích: Khi clone một source code React về máy, việc đầu tiên anh em cần làm là gõ npm install để hệ thống tải toàn bộ thư viện (dependencies) được liệt kê trong file package.json. Xong xuôi mới dùng npm start để chạy app được.

Question 22: How would you set up client-server communication in a Next.js application?

A. By using the fetch API in getServerSideProps.

B. By modifying the next.config.js file.

C. By creating a custom server.

D. By using the useEffect hook.

Đáp án: A

Giải thích: Next.js cực mạnh ở khoản Server-Side Rendering (SSR). Việc dùng hàm getServerSideProps cho phép anh em fetch dữ liệu trực tiếp từ server ngay tại thời điểm render, sau đó truyền xuống component dưới dạng props. Đây là chuẩn bài luôn!

Question 28: Which class is used to create a button in Bootstrap 5?

A. .btn

B. .button

C. .btn-primary

D. .btn-default

Đáp án: A

Giải thích: Trong Bootstrap 5, lớp "cội nguồn" để tạo ra một nút bấm là .btn. Các lớp đi kèm như .btn-primary hay .btn-danger chỉ mang tính chất điểm tô thêm màu sắc thôi.

Question 29: What does the catch method do in a promise chain?

A. It handles the resolved value.

B. It handles errors.

C. It pauses the execution.

D. It converts the promise to a synchronous function.

Đáp án: B

Giải thích: Đã gọi là catch (bắt) thì tất nhiên là để "bắt lỗi" (errors/rejections) xảy ra trong chuỗi Promise rồi. Nếu không có nó, lỡ API sập thì app của anh em cũng "đi bụi" theo đấy.

Question 37: What is the role of the BrowserRouter component in React Router?

A. It lazy-loads route components

B. It validates route parameters

C. It defines individual routes

D. It provides history-based navigation for app

Đáp án: D

Giải thích: BrowserRouter đóng vai trò cực quan trọng, nó sử dụng History API của HTML5 để anh em có thể điều hướng giữa các trang mượt mà mà không cần tải lại toàn bộ website (tạo cảm giác như một Single Page Application thực thụ).

Question 39: Which metric is most useful for evaluating the performance of TailwindCSS in a React project?

A. Developer productivity.

B. Bundle size.

C. Build time.

D. CSS specificity.

Đáp án: A

Giải thích: Cái "ăn tiền" nhất của TailwindCSS chính là cung cấp bộ class tiện ích vô cùng phong phú. Anh em không phải rặn óc nghĩ tên class hay nhảy qua nhảy lại file CSS nữa. Nên developer productivity (Năng suất của lập trình viên) là chỉ số đánh giá thực tế nhất!

Question 41: What is the command to start json-server and specify the JSON file to be served?

A. npm start

B. json-server start

C. npx json-server --watch data.json

D. node server.js

Đáp án: C

Giải thích: Để giả lập một REST API nhanh như chớp với thư viện json-server, anh em chỉ cần gõ npx json-server --watch data.json. File data.json sẽ lập tức trở thành một database ảo cực xịn xò.

Question 49: How would you handle asynchronous actions in Redux?

A. By creating a new reducer.

B. By using the useEffect hook.

C. By using Redux Thunk or Redux Saga.

D. By using the useState hook.

Đáp án: C

Giải thích: Bản chất Redux chỉ là đồng bộ (synchronous). Để Redux có thể đợi API trả kết quả về (bất đồng bộ), anh em phải "độ" thêm middleware cho nó, điển hình nhất là Redux Thunk hoặc Redux Saga.

Question 51: In React, why should you avoid calling a function directly in an event handler like onClick={handleClick()}?

A. It causes a syntax error

B. It's slower than using a reference

C. It runs the function immediately on render

D. It prevents event propagation

Đáp án: C

Giải thích: Lỗi kinh điển của "thực tập sinh hacker"! Nếu anh em viết onClick={handleClick()} có cặp ngoặc tròn, hàm đó sẽ bị kích hoạt ngay lập tức ngay khi component vừa render xong, chứ không thèm đợi người dùng bấm vào. Chuẩn nhất phải truyền tham chiếu: onClick={handleClick}.

Lời kết

Kỳ thi FE FER202 - ReactJS tại FPTU tuy "khoai" nhưng lại là bước đệm cực tốt để anh em vững vàng hơn trên con đường trở thành một Frontend Developer chuyên nghiệp. Thông qua bộ đề FER202 SU25 này, mình hy vọng mấy bồ không chỉ thuộc lòng đáp án mà thực sự hiểu sâu sắc về cách dòng code của mình vận hành.

Dù đề thi có biến hóa khôn lường ra sao, chỉ cần nắm vững nền tảng, anh em sẽ luôn tự tin "cân" mọi bài test. Chúc toàn thể anh em DevSharePro ôn thi hiệu quả, vào phòng thi "múa phím" thật mượt và pass môn với con điểm xanh lét nhé!

Nếu thấy bài viết này "cứu rỗi" được bạn trong những ngày nước rút, đừng quên share ngay cho đồng đội cùng lớp và để lại một bình luận bên dưới để ủng hộ devshare.pro.vn ra thêm nhiều tài liệu chất lượng nha!

About the author

Trick Pro Software
Content Creator, Graphic Designer, UI / UX Designer

Post a Comment