Câu hỏi: FER202 Phát triển web Front-End với React – Bộ ôn tập cuối kỳ số 3
50 câu trắc nghiệm kèm lời giải của môn FER202 - Phát triển web Front-End với React, xếp đúng thứ tự trong đề.
Danh sách câu hỏi
useStateuseEffectuseDispatchuseContextĐáp án đúng gồm ba ý: "Enable functional components to have state", "Simplify component logic" và "Promote reusability of logic between components". useState và useReducer cho function component có state riêng mà không cần viết class; useEffect gom các phần logic liên quan, ví dụ đăng ký và huỷ đăng ký, vào cùng một chỗ thay vì rải qua componentDidMount, componentDidUpdate, componentWillUnmount, nên logic của component gọn và dễ theo dõi hơn; custom hook như useFetch hay useAuth đóng gói logic có state để nhiều component dùng lại mà không cần HOC hay render props. "Automatically optimize performance" không đúng vì Hooks không tự tối ưu gì cả; muốn tránh render thừa phải chủ động dùng useMemo, useCallback hoặc React.memo, và khai báo dependency sai còn có thể gây render lặp.
Đáp án đúng: "Using the <Route> component". Trong React Router, mỗi tuyến đường được khai báo bằng một component Route với thuộc tính path chỉ mẫu đường dẫn và element chỉ component cần hiển thị khi khớp; ở v6 các Route được đặt bên trong Routes, và có thể lồng Route để tạo bố cục con. "Using the <Link> component" sai vì Link tạo liên kết để người dùng bấm chuyển trang phía client, nó điều hướng tới một route đã khai báo chứ không khai báo route. "Using the <Switch> component" sai vì Switch là component của v5 dùng để bọc các Route và chỉ hiển thị route đầu tiên khớp, đã được thay bằng Routes ở v6; bản thân nó không định nghĩa đường dẫn nào. "Using the <Redirect> component" sai vì Redirect của v5 dùng để chuyển hướng sang đường dẫn khác, ở v6 được thay bằng Navigate, không phải công cụ khai báo route.
Đáp án đúng: "<Route path='/users/:id' /> ". Trong React Router, tham số động của URL được khai báo bằng dấu hai chấm đứng trước tên tham số trong prop path; route này khớp với /users/42 hay /users/abc, và component bên trong đọc giá trị bằng hook useParams, được một đối tượng có thuộc tính id mang chuỗi 42. Phương án "
<Route path='/users{?id}' />" mượn cú pháp kiểu URI template, React Router không hiểu cú pháp này nên không tạo ra tham số id nào. Phương án "<Route path='/users[?id]' /> " cũng là cú pháp không có trong React Router; ngoặc vuông là quy ước đặt tên thư mục route động của Next.js. Phương án "<Route param='/users/:id' /> " viết đúng mẫu đường dẫn nhưng đặt vào prop param không tồn tại; Route chỉ nhận đường dẫn qua prop path, nên route này không có đường dẫn để khớp.
import { createStore } from 'redux';
const store = createStore({ reducer: { counter: counterReducer } });import { createStore } from 'redux';
const store = createStore({ counter: counterReducer });import { configureStore } from '@reduxjs/toolkit';
const store = configureStore({ counter: counterReducer});import { configureStore } from '@reduxjs/toolkit';
const store = configureStore({ reducer: { counter: counterReducer } });