Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

React Native Session 07

Total questions: 20

Worksheet time: 10mins

Name
Class
Date
1.

Câu 1: Khi cập nhật một state là object, cách nào sau đây đảm bảo bạn không làm mất các thuộc tính cũ?

a)

setUser({ name: 'John' });

b)

user.name = 'John';

c)

setUser(user.name = 'John');

d)

setUser(prevState => ({ ...prevState, name: 'John' }))

2.

Câu 2: Hook useState trả về giá trị gì?

a)

Chỉ một biến chứa state

b)

Chỉ một hàm dùng để cập nhật state

c)

Một object chứa state và hàm cập nhật

d)

Một mảng chứa hai phần tử: giá trị state hiện tại và hàm cập nhật state

3.

Câu 3: Trong useEffect, việc cung cấp một mảng phụ thuộc (dependency array) rỗng [] có tác dụng gì?

a)

Khiến effect chạy sau mỗi lần component render lại

b)

Khiến effect không bao giờ chạy

c)

Khiến effect chỉ chạy khi component bị unmount

d)

Khiến effect chỉ chạy một lần duy nhất sau khi component render lần đầu

4.

Câu 4: Chức năng chính của cleanup function được trả về từ useEffect là gì?

a)

Để cập nhật state của component

b)

Để gọi API lấy dữ liệu mới

c)

Để tối ưu hóa tốc độ render của ứng dụng

d)

Để dọn dẹp tài nguyên (như subscription, timer) trước khi component unmount hoặc effect chạy lại

5.

Câu 5: Đâu là cách triển khai cleanup function đúng cho một setInterval trong useEffect?

a)

useEffect(() => { const timerId = setInterval(tick, 1000); return timerId; }, []);

b)

useEffect(() => { const timerId = setInterval(tick, 1000); console.log(timerId) }, []);

c)

useEffect(() => { const timerId = setInterval(tick, 1000); return clearInterval(timerId); }, []);

d)

useEffect(() => { const timerId = setInterval(tick, 1000); return () => clearInterval(timerId); }, []);

6.

Câu 6: useEffect(callback, deps) sẽ thực thi callback khi nào?

a)

Chỉ một lần khi component được tạo

b)

Sau mỗi lần component render lại

c)

Chỉ khi component bị xóa khỏi cây DOM

d)

Sau lần render đầu tiên và mỗi khi một giá trị trong mảng deps thay đổi

7.

Một trong những công dụng phổ biến nhất của useRef là gì?

a)

Để quản lý các logic state phức tạp

b)

Để khiến component phải render lại

c)

Để truyền dữ liệu giữa các component không liên quan

d)

Để truy cập trực tiếp đến một phần tử DOM hoặc lưu trữ một giá trị có thể thay đổi mà không gây render lại

8.

Để truy cập giá trị được lưu trữ trong một ref (tạo bởi useRef), bạn sử dụng cú pháp nào?

a)

myRef()

b)

myRef.value

c)

myRef

d)

myRef.current

9.

Hook useContext giải quyết vấn đề gì trong React?

a)

Tối ưu hiệu năng render của danh sách

b)

Giúp quản lý các tác vụ bất đồng bộ

c)

Giúp xử lý các sự kiện chạm của người dùng

d)

Giúp truy cập dữ liệu từ Context mà không cần thông qua "prop drilling" (truyền props qua nhiều cấp)

10.

useReducer thường được ưu tiên hơn useState trong trường hợp nào?

a)

Khi quản lý một state đơn giản như boolean hoặc chuỗi

b)

Khi bạn chỉ cần lưu trữ một giá trị không thay đổi

c)

Khi bạn muốn truy cập trực tiếp đến phần tử DOM

d)

Khi bạn có logic state phức tạp với nhiều giá trị phụ thuộc lẫn nhau

11.

Hàm dispatch được trả về từ useReducer có nhiệm vụ gì?

a)

Trả về giá trị state hiện tại

b)

Thay đổi trực tiếp object state

c)

Ngăn component render lại

d)

Gửi một "hành động" (action) đến reducer function để kích hoạt việc cập nhật state

12.

Thuộc tính nào của hook useNetInfo nên được sử dụng để kiểm tra một cách đáng tin cậy rằng thiết bị có thực sự truy cập được Internet hay không?

a)

isConnected

b)

type

c)

details.strength

d)

isInternetReachable

13.

Sự khác biệt chính giữa window và screen được trả về từ hook useDimensions là gì?

a)

window luôn có kích thước lớn hơn screen

b)

screen và window luôn có kích thước giống hệt nhau

c)

screen dùng cho iOS, window dùng cho Android

d)

window là không gian khả dụng cho ứng dụng (không tính status bar), trong khi screen là kích thước toàn bộ màn hình vật lý

14.

Prop nào trong FlatList dùng để hiển thị các phần tử của danh sách?

a)

data

b)

keyExtractor

c)

onEndReached

d)

renderItem

15.

Prop keyExtractor trong FlatList có mục đích gì?

a)

Để mã hóa dữ liệu của danh sách

b)

Để xác định phong cách cho mỗi phần tử

c)

Để thêm header cho danh sách

d)

Để cung cấp một key duy nhất cho mỗi phần tử, giúp React tối ưu hóa việc render và quản lý list

16.

Cấu trúc dữ liệu đầu vào cho SectionList phải như thế nào?

a)

Một mảng phẳng chứa các object

b)

Một object lớn chứa tất cả dữ liệu

c)

Một chuỗi JSON

d)

Một mảng các object, mỗi object chứa một key title cho tiêu đề section và một key data là mảng các phần tử của section đó

17.

Đâu là sự khác biệt cơ bản giữa FlatList và SectionList?

a)

FlatList chỉ cuộn được theo chiều dọc, SectionList cuộn được theo cả chiều ngang

b)

FlatList không có header và footer

c)

FlatList hiệu năng tốt hơn SectionList trong mọi trường hợp

d)

FlatList hiển thị một danh sách đơn giản từ mảng phẳng, trong khi SectionList dùng để hiển thị dữ liệu được nhóm theo từng mục (section)

18.

Để tối ưu hóa FlatList cho các danh sách dài, bạn nên đảm bảo cung cấp prop nào?

a)

ListHeaderComponent

b)

numColumns

c)

horizontal

d)

keyExtractor

19.

Để tạo context cho useContext sử dụng, bạn dùng hàm nào của React?

a)

React.useContext()

b)

React.newContext()

c)

React.Provider()

d)

React.createContext()

20.

Khi nào một component sử dụng useContext(MyContext) sẽ re-render?

a)

Khi component cha của nó re-render

b)

Sau mỗi 5 giây

c)

Chỉ khi component đó được mount lần đầu

d)

Khi giá trị của MyContext.Provider thay đổi