Ngân hàng câu hỏi của chương

Câu hỏi: SBA301 - Chương 3: State và Hooks trong React

24 câu trắc nghiệm kèm lời giải của môn Tích hợp ứng dụng trang đơn với Spring Boot - Integrate single page application with Spring Boot, xếp theo thứ tự nhập vào ngân hàng.

Danh sách câu hỏi

20/24 câuCòn 4
ATo define CSS styles.
BTo specify when the effect should run.
CTo manage database connections.
DTo render the UI.
Lời giải
Mảng phụ thuộc (dependency array) trong useEffect là một tính năng quan trọng trong React. Nó giúp chúng ta xác định khi nào hiệu ứng (effect) nên được chạy lại. Khi một giá trị trong mảng phụ thuộc thay đổi, React sẽ chạy lại hiệu ứng để đảm bảo dữ liệu luôn được cập nhật. Ví dụ, nếu chúng ta có một hiệu ứng để lấy dữ liệu từ API, chúng ta có thể sử dụng mảng phụ thuộc để chỉ định khi nào nên lấy dữ liệu lại. Điều này giúp giảm thiểu số lần gọi API và cải thiện hiệu suất của ứng dụng.
Mở trang câu hỏi này →
2How do you update state in a Functional Component?4 lựa chọnDễ100% trả lời đúng
ABy directly modifying the state variable.
BBy calling this.setState().
CBy calling the setter function returned by useState().
DBy using props.setState().
Lời giải
Trong các thành phần chức năng, việc cập nhật trạng thái được thực hiện thông qua hàm setter được trả về bởi useState(). Hàm useState() được sử dụng để tạo một biến trạng thái và một hàm setter cho biến đó. Khi bạn muốn cập nhật trạng thái, bạn sẽ gọi hàm setter này với giá trị mới. Ví dụ, nếu bạn có một biến trạng thái tên là 'count' và bạn muốn tăng giá trị của nó lên 1, bạn sẽ gọi hàm setter như sau: setCount(count + 1). Điều này sẽ cập nhật giá trị của biến trạng thái 'count' và tự động re-render các phần tử trong giao diện người dùng.
Mở trang câu hỏi này →
AThe component re-renders.
BAn error is thrown.
CThe change is ignored.
DThe component updates, but it is not recommended.
Lời giải
Khi bạn trực tiếp sửa đổi biến trạng thái được trả về bởi useState() trong một thành phần chức năng, thì thay đổi này sẽ bị bỏ qua. Điều này là vì useState() sử dụng một đối tượng trạng thái riêng biệt để lưu trữ giá trị của biến trạng thái. Khi bạn sửa đổi biến trạng thái trực tiếp, bạn không thay đổi giá trị được lưu trữ trong đối tượng trạng thái. Thay vào đó, bạn đang sửa đổi một bản sao của giá trị đó. Vì vậy, khi useState() được gọi lại trong vòng đời của thành phần, nó sẽ trả về giá trị ban đầu, không phải giá trị đã được sửa đổi.
Mở trang câu hỏi này →
Aprops.state.
Bthis.state.
CuseState().
DgetState().
Lời giải

Trong các thành phần lớp (Class Components), trạng thái (state) có thể truy cập thông qua thuộc tính 'this.state'. Đây là cách truy cập trạng thái trong các thành phần lớp, nơi mà trạng thái được lưu trữ trong thuộc tính 'state' của lớp. Ví dụ, nếu bạn có một lớp như sau:

Lời giải
 class MyClass extends React.Component {
  constructor(props) {
    super(props);
    this.state = { count: 0 };
  }

  render() {
    return (
      <div>
        <p>Count: {this.state.count}</p>
        <button onClick={() => this.setState({ count: this.state.count + 1 })}>+</button>
      </div>
    );
  }
}

Thì bạn có thể truy cập trạng thái bằng cách sử dụng 'this.state'. Tuy nhiên, trong các thành phần chức năng (Functional Components), trạng thái được truy cập thông qua hàm 'useState()'.

Mở trang câu hỏi này →
5Which of the following is NOT a valid React hook?4 lựa chọnDễ80% trả lời đúng
AuseState
BuseClass
CuseMemo
DuseEffect
Lời giải
Trong React, có một số hook được sử dụng để quản lý trạng thái và hiệu ứng trong ứng dụng. Các hook phổ biến bao gồm useState, useMemo, useEffect. Tuy nhiên, có một số hook không hợp lệ. Trong câu hỏi này, chúng ta cần xác định hook không hợp lệ. 'useState' và 'useMemo' là hai hook hợp lệ, được sử dụng để quản lý trạng thái và hiệu ứng trong ứng dụng. 'useEffect' cũng là một hook hợp lệ, được sử dụng để thực hiện hành động sau khi render. 'useClass' là một hook không hợp lệ, vì nó không tồn tại trong React. Vì vậy, câu trả lời đúng cho câu hỏi này là 'useClass'.
Mở trang câu hỏi này →
6Which of the following violates the Rules of Hooks?4 lựa chọnKhó33% trả lời đúng
ACalling hooks at the top level of a component
BCalling hooks inside a loop
CUsing multiple useState calls
DCalling hooks in custom hooks
Lời giải
Khi sử dụng React Hooks, chúng ta cần tuân thủ các quy tắc để tránh các lỗi không mong muốn. Một trong những quy tắc quan trọng là không gọi hooks trong các vòng lặp. Ví dụ, nếu bạn có một mảng các giá trị và muốn sử dụng useState để lưu trữ từng giá trị, bạn không nên gọi useState trong vòng lặp. Thay vào đó, bạn nên gọi useState một lần và sử dụng giá trị đó trong vòng lặp. Điều này giúp đảm bảo rằng mỗi lần render, bạn chỉ gọi useState một lần và tránh các vấn đề liên quan đến hiệu suất. Ngoài ra, bạn cũng không nên gọi hooks ở cấp độ cao nhất của một component, vì điều này có thể gây ra các vấn đề liên quan đến hiệu suất và khó debug. Cuối cùng, bạn cũng không nên gọi hooks trong các custom hooks, vì điều này có thể gây ra các vấn đề liên quan đến hiệu suất và khó debug.
Mở trang câu hỏi này →
AuseState
BuseEffect
CuseMemo
DuseCallback
Lời giải
Khi lập trình với React, chúng ta thường gặp phải tình trạng hiệu suất chậm do tính toán tốn kém. Để giải quyết vấn đề này, chúng ta có thể sử dụng một số hook đặc biệt. Trong số đó, hook `useMemo` là một lựa chọn phổ biến.
Mở trang câu hỏi này →
8What does useEffect do in React?4 lựa chọnTrung bình50% trả lời đúng
AModifies props
BRuns side effects like fetching data
CStores component state
DRenders the component conditionally
Lời giải
Hàm useEffect trong React được sử dụng để chạy các tác dụng phụ như fetching dữ liệu, cập nhật trạng thái ứng dụng, hoặc thực hiện các hành động khác ngoài vòng đời của một thành phần. Nó cho phép bạn thực hiện các hành động này sau khi render thành phần một lần. Ví dụ, bạn có thể sử dụng useEffect để fetch dữ liệu từ API và cập nhật trạng thái ứng dụng khi dữ liệu được nhận về. Ngoài ra, bạn cũng có thể sử dụng nó để hủy các tác dụng phụ khi thành phần bị loại bỏ khỏi DOM.
Mở trang câu hỏi này →
9Which hook is used for managing state in a functional component?4 lựa chọnDễ80% trả lời đúng
AuseClass
BuseEffect
CuseState
DuseReducer
Lời giải
Trong React, khi chúng ta muốn quản lý trạng thái trong một thành phần chức năng (functional component), chúng ta cần sử dụng một hook đặc biệt. Hook là một hàm có thể được sử dụng trong các thành phần chức năng để truy cập các tính năng của React. Trong trường hợp này, chúng ta cần sử dụng hook "useState" để quản lý trạng thái. Hook "useState" cho phép chúng ta tạo một biến trạng thái và các hàm để cập nhật nó. Điều này giúp chúng ta có thể quản lý trạng thái của ứng dụng một cách dễ dàng và hiệu quả.
Mở trang câu hỏi này →
10What is the correct way to lift state up in React?4 lựa chọnTrung bình67% trả lời đúng
AStore state in the child component
BPass callback from parent to child
CUse Redux
DStore state in a global object
Lời giải
Khi nâng cấp trạng thái lên trong React, chúng ta cần lưu ý cách thức đúng đắn. Trước hết, chúng ta không nên lưu trạng thái trong thành phần con (Store state in the child component), vì điều này sẽ dẫn đến sự phức tạp và khó khăn trong việc quản lý trạng thái. Thay vào đó, chúng ta có thể sử dụng callback từ cha sang con (Pass callback from parent to child), nơi mà cha sẽ truyền một hàm callback xuống con, và con sẽ thực hiện hành động cần thiết khi nhận được callback. Ngoài ra, chúng ta cũng có thể sử dụng Redux, một thư viện quản lý trạng thái phổ biến trong React. Tuy nhiên, lưu trữ trạng thái trong một đối tượng toàn cầu (Store state in a global object) không phải là một lựa chọn tốt, vì nó có thể dẫn đến sự phức tạp và khó khăn trong việc quản lý trạng thái.
Mở trang câu hỏi này →
11Which lifecycle method is replaced by useEffect in functional components?4 lựa chọnDễ100% trả lời đúng
AcomponentWillMount
BcomponentDidMount
CshouldComponentUpdate
DgetDerivedStateFromProps
Lời giải
Trong React, lifecycle method là các phương thức được gọi tại các giai đoạn khác nhau trong quá trình hoạt động của một thành phần. Trong các thành phần chức năng (functional components), useEffect được sử dụng để thay thế một số lifecycle method. Trong số các lựa chọn trên, phương thức được thay thế bởi useEffect là componentDidMount. Phương thức này được gọi sau khi thành phần đã được render và các thành phần con đã được render xong. Nó thường được sử dụng để thực hiện các hành động như tải dữ liệu từ server, đăng ký các sự kiện, v.v. Trong các thành phần chức năng, useEffect được sử dụng để thực hiện các hành động tương tự, nhưng với cách tiếp cận khác.
Mở trang câu hỏi này →
12How to update state in React?4 lựa chọnDễ100% trả lời đúng
ADirectly assign new value to state
BUse setState or useState setter
CCall render() method
DUse forceUpdate() method
Lời giải
Để cập nhật trạng thái trong React, chúng ta cần sử dụng phương thức setState hoặc useState setter. Phương thức này giúp cập nhật trạng thái một cách an toàn và hiệu quả. Khi sử dụng setState hoặc useState setter, chúng ta có thể cập nhật trạng thái một cách dễ dàng và đảm bảo rằng trạng thái được cập nhật một cách đồng bộ. Phương thức này cũng giúp ngăn chặn việc cập nhật trạng thái không mong muốn, giúp ứng dụng của chúng ta trở nên ổn định và hiệu quả hơn. Ngoài ra, sử dụng setState hoặc useState setter cũng giúp chúng ta có thể theo dõi và quản lý trạng thái một cách dễ dàng hơn.
Mở trang câu hỏi này →
13What is a controlled component in React?4 lựa chọnDễ100% trả lời đúng
AComponent that stores data in global variables
BComponent that doesn't use state
CComponent whose input value is controlled by React state
DComponent with internal timer
Lời giải
Trong React, một thành phần được kiểm soát (controlled component) là một thành phần có giá trị đầu vào được kiểm soát bởi trạng thái của ứng dụng. Điều này có nghĩa là giá trị của thành phần sẽ được cập nhật tự động khi trạng thái của ứng dụng thay đổi. Ví dụ, khi bạn nhập giá trị vào một trường văn bản trong một thành phần được kiểm soát, giá trị đó sẽ được lưu trữ trong trạng thái của ứng dụng và sẽ được cập nhật tự động khi bạn thay đổi giá trị đó. Điều này giúp đảm bảo rằng giá trị của thành phần luôn được đồng bộ với trạng thái của ứng dụng.
Mở trang câu hỏi này →
14Which statement is true about useState?4 lựa chọnDễ100% trả lời đúng
AIt can only store numbers
BIt returns the state value and a function to update it
CIt is used only in class components
DIt creates side effects
Lời giải
useState là một hàm trong React được sử dụng để quản lý trạng thái của một thành phần. Nó được sử dụng trong cả class và function components. Khi sử dụng useState, nó sẽ trả về một mảng có hai phần: giá trị hiện tại của trạng thái và một hàm để cập nhật trạng thái. Hàm này sẽ được sử dụng để thay đổi giá trị của trạng thái. Ví dụ, nếu bạn muốn tạo một button có thể tăng hoặc giảm giá trị, bạn sẽ sử dụng useState để quản lý giá trị này và hàm để cập nhật giá trị này khi button được click. Điều này giúp bạn có thể quản lý trạng thái của thành phần một cách dễ dàng và hiệu quả.
Mở trang câu hỏi này →
15Which hook is used for performance optimization by memoizing values?4 lựa chọnDễ100% trả lời đúng
AuseEffect
BuseState
CuseMemo
DuseReducer
Lời giải
Khi thực hiện các tác vụ phức tạp trong ứng dụng React, chúng ta thường muốn tối ưu hóa hiệu suất bằng cách tránh thực hiện chúng không cần thiết. Để đạt được điều này, chúng ta có thể sử dụng hook `useMemo` để lưu trữ giá trị của một hàm tính toán và chỉ thực hiện lại khi dữ liệu đầu vào thay đổi. Điều này giúp giảm thiểu số lần thực hiện tác vụ và cải thiện hiệu suất của ứng dụng. Ví dụ, nếu chúng ta có một hàm tính toán phức tạp để tạo ra một mảng dữ liệu, chúng ta có thể sử dụng `useMemo` để lưu trữ kết quả của hàm này và chỉ thực hiện lại khi dữ liệu đầu vào thay đổi.
Mở trang câu hỏi này →
16What does lifting state up mean in React?4 lựa chọnDễ75% trả lời đúng
AMoving state from parent to child
BMoving state to global context
CMoving state to the nearest common ancestor
DMoving state to Redux store
Lời giải
Lifting state up là một kỹ thuật trong React giúp chia sẻ trạng thái giữa các thành phần con và cha. Khi nói đến việc nâng trạng thái lên, chúng ta đang nói về việc di chuyển trạng thái từ một thành phần con sang thành phần cha gần nhất. Điều này giúp giảm thiểu việc sử dụng props và tạo ra một cấu trúc dữ liệu được chia sẻ giữa các thành phần. Ví dụ, nếu bạn có một danh sách các thành phần con và mỗi thành phần con cần truy cập vào một trạng thái chung, thì việc nâng trạng thái lên sẽ giúp bạn chia sẻ trạng thái đó giữa các thành phần con mà không cần phải sử dụng props.
Mở trang câu hỏi này →
17Which of the following is true about controlled components?4 lựa chọnTrung bình40% trả lời đúng
ATheir state is managed by the DOM
BTheir state is managed by React
CThey use refs to access values
DThey can't be used in forms
Lời giải
Các thành phần được kiểm soát (controlled components) trong React là các thành phần có trạng thái được quản lý bởi React. Điều này có nghĩa là React sẽ quản lý và cập nhật trạng thái của thành phần đó thay vì DOM. Điều này giúp đảm bảo rằng trạng thái của thành phần luôn được đồng bộ và cập nhật chính xác. Trong các thành phần được kiểm soát, React sẽ quản lý giá trị của các trường nhập liệu (input) và đảm bảo rằng giá trị đó luôn được cập nhật chính xác. Điều này giúp ngăn chặn các vấn đề liên quan đến trạng thái không đồng bộ và đảm bảo rằng ứng dụng luôn hoạt động ổn định.
Mở trang câu hỏi này →
18Which lifecycle method in React class components is used for side effects?4 lựa chọnDễ100% trả lời đúng
AcomponentDidMount
Brender
Cconstructor
DshouldComponentUpdate
Lời giải
Trong React, lifecycle method được sử dụng để thực hiện các tác vụ phụ (side effects) khi một thành phần thay đổi trạng thái. 'componentDidMount' là một trong những lifecycle method quan trọng nhất, được sử dụng để thực hiện các tác vụ phụ sau khi thành phần được render vào DOM. Ví dụ, bạn có thể sử dụng 'componentDidMount' để tải dữ liệu từ server, hoặc thực hiện các hành động khác khi thành phần được render xong. Ngoài ra, bạn cũng có thể sử dụng 'componentDidUpdate' để thực hiện các tác vụ phụ khi thành phần thay đổi trạng thái.
Mở trang câu hỏi này →
19Which built-in Hook is used to access context values in Functional Components?4 lựa chọnTrung bình67% trả lời đúng
AuseContext()
BuseProps()
CuseValue()
DuseContextValue()
Lời giải
Trong lập trình React, khi sử dụng các thành phần chức năng (Functional Components), chúng ta có thể truy cập vào giá trị của ngữ cảnh (context) bằng cách sử dụng Hook. Hook là một hàm đặc biệt được sử dụng để truy cập vào các giá trị và hành vi của React. Trong trường hợp này, chúng ta cần sử dụng Hook để truy cập vào giá trị của ngữ cảnh. Có một số lựa chọn cho chúng ta: useProps(), useValue(), useContextValue(), useContext(). Tuy nhiên, chỉ có một trong số đó là đúng. Đó là useContext(). Hook useContext() cho phép chúng ta truy cập vào giá trị của ngữ cảnh và sử dụng nó trong thành phần chức năng của mình.
Mở trang câu hỏi này →
20Which hook is an alternative to useState for complex state management?4 lựa chọnTrung bình50% trả lời đúng
AuseMemo
BuseReducer
CuseRef
DuseEffect
Lời giải
Khi sử dụng useState để quản lý trạng thái phức tạp, bạn có thể gặp phải một số vấn đề như trạng thái không được cập nhật đúng cách hoặc trạng thái bị trùng lặp. Trong trường hợp này, bạn có thể sử dụng useReducer như một giải pháp thay thế. useReducer cho phép bạn quản lý trạng thái phức tạp bằng cách sử dụng một hàm reducer để cập nhật trạng thái. Hàm reducer này sẽ nhận vào một trạng thái hiện tại và một hành động, sau đó trả về một trạng thái mới. Điều này giúp bạn có thể quản lý trạng thái phức tạp một cách dễ dàng và hiệu quả.
Mở trang câu hỏi này →