So sánh angular component và react component giống và khác

Tính đến thời điểm hiện nay, React là công nghệ front-end được nhiều công ty sử dụng nhất. Vì vậy, các cơ hội việc làm cho lập trình viên React ngày càng nhiều. Nếu bạn đang chuẩn bị cho buổi phỏng vấn của mình, bạn có thể tham khảo những câu hỏi phỏng vấn React dưới đây để có thể chuẩn bị thật tốt nhé!

Mục lục

Câu hỏi phỏng vấn ReactJS cơ bản

Những đặc điểm của React?

  • JSX: JSX là một syntax mở rộng cho JavaScript. Nó được sử dụng với React để mô tả giao diện người dùng như thế nào. Bằng cách sử dụng JSX, chúng ta có thể viết cấu trúc HTML trong cùng file chứa code Javascript
  • Thành phần [Components]: Components là những block xây dựng bất kỳ ứng dụng React nào. Một ứng dụng đơn lẻ thường bao gồm nhiều components. Nó chia giao diện nguời dùng thành các phần độc lập, có thể tái sử dụng và có thể được xử lý riêng.
  • DOM ảo [Virtual DOM]: React giữ một bản “đại diện” nhưng nhẹ hơn của DOM “thực” trong bộ nhớ, gọi là DOM ảo [Virtual DOM]. Khi state của đối tượng thay đổi, DOM ảo chỉ thay đổi đối tượng trong DOM thực thay vì cập nhật tất cả các đối tượng.
  • Truyền dữ liệu một chiều [One-way data-binding]: Truyền dữ liệu một chiều giữ cho mọi thứ đều theo modular và nhanh chóng. Luồng dữ liệu một chiều có nghĩa là khi thiết kế ứng dụng React, bạn thường lồng các components con vào trong các components cha.
  • Hiệu suất cao: React chỉ cập nhật những thành phần đã thay đổi, thay vì cập nhật tất cả các components cùng một lúc. Điều này dẫn đến các ứng dụng web nhanh hơn nhiều.

JSX là gì?

JSX là một syntax mở rộng cho JavaScript. Nó được sử dụng với React để mô tả giao diện người dùng như thế nào. Bằng cách sử dụng JSX, chúng ta có thể viết cấu trúc HTML trong cùng file chứa code Javascript

Trình duyệt web có thể đọc JSX trực tiếp không?

Trình SX không phải là đối tượng JavaScript thông thường không thể đọc JSX chi tiết. Bởi vì chúng được xây dựng chỉ để đọc các đối tượng regular JS thông thường và JSX không phải là đối tượng JavaScript thông thường.

Để trình duyệt web đọc file JSX, file đó cần được được chuyển đổi thành một đối tượng JavaScript thông thường. Trong trường hợp này, bạn có thể sử dụng Babel.

DOM ảo [Virtual DOM] là gì?

DOM [Document Object Model] là mô hình đối tượng tài liệu. Đây là một tài liệu HTML có cấu trúc cây logic. Mỗi nhánh của cây kết thúc bằng một node và mỗi node chứa các đối tượng.

React giữ một bản “đại diện” nhưng nhẹ hơn của DOM “thực” trong bộ nhớ, gọi là DOM ảo [Virtual DOM]. Khi state của đối tượng thay đổi, DOM ảo chỉ thay đổi đối tượng trong DOM thực thay vì cập nhật tất cả các đối tượng.

Tại sao nên sử dụng React thay vì các framework khác, ví dụ như Angular?

  • Dễ dàng tạo các ứng dụng động: React giúp tạo các ứng dụng web động dễ dàng hơn vì ít code hơn mà lại cung cấp nhiều chức năng hơn, trong khi với các ứng dụng JavaScript, cách code thường có xu hướng trở nên phức tạp.
  • Hiệu suất cải thiện: React sử dụng DOM ảo, giúp các ứng dụng web hoạt động nhanh hơn. Virtual DOM so sánh trạng thái trước đó của nó và chỉ cập nhật các thành phần có trạng thái thay đổi trong DOM thực thay vì cập nhật tất cả các thành phần, như các ứng dụng web thông thường.
  • Các thành phần có thể tái sử dụng: Components là các block được xây dựng trên bất kỳ ứng dụng React nào và một ứng dụng đơn lẻ thường bao gồm nhiều component. Những components này có logic và components riêng và chúng có thể tái sử dụng qua các ứng dụng. Do đó, chúng giúp giảm đáng kể thời gian phát triển của ứng dụng.
  • Luồng dữ liệu một chiều: React tuân theo luồng dữ liệu một chiều. Nghĩa là khi thiết kế một ứng dụng React, chúng ta thường lồng các component con vào trong các component cha. Và vì dữ liệu được xử lý theo một chiều nên sẽ dễ dàng hơn trong việc debug lỗi và biết vấn đề nằm ở đâu trong ứng dụng.
  • Các công cụ chuyên dụng để gỡ lỗi dễ dàng: Facebook đã phát hành tiện ích mở rộng chrome dùng để gỡ lỗi các ứng dụng React, giúp quá trình gỡ lỗi React cho các ứng dụng web nhanh hơn và dễ dàng hơn.

Sự khác nhau giữa ES6 và ES5 là gì?

Sự khác nhau giữa 2 tiêu chuẩn này là

  • Components và Function

  • Exports vs export

  • Require vs import

Làm thế nào để tạo một ứng dụng React?

Đây là các bước để tạo ứng dụng React:

  • Cài đặt NodeJS trên máy tính bởi vì chúng ta cần NPM để cài đặt thư viện React. NPM là trình quản lý node package. Đây là nơi chứa nhiều thư viện JavaScript , bao gồm cả React

  • Cài đặt the create-react-app package bằng command prompt hoặc terminal.

  • Cài đặt text editor mà bạn chọn như VS Code hoặc Sublime Text

Sự kiện [Event] trong React là gì?

Event là một hành động mà người dùng hoặc hệ thống có thể kích hoạt, chẳng hạn như nhấn phím, nhấp chuột, v.v.

Các React events được đặt tên bằng cách sử dụng camelCase, thay vì chữ thường trong HTML.

Làm thế nào để tạo một sự kiện [event] trong React?

Một sự kiện React có thể được tạo bằng cách như sau:

Synthetic events trong React là gì?

Synthetic events kết hợp các response của các native events từ các trình duyệt khác nhau vào một API duy nhất, đảm bảo rằng các event nhất quán trên các trình duyệt khác nhau.

Ứng dụng phải được nhất quán khi đang chạy trên bất kỳ trình duyệt nào. Ở đây, preventDefault là một Synthetic events.

Giải thích cách list hoạt động trong React

Chúng ta tạo list trong React như trong JavaScript. Danh sách hiển thị data theo định dạng được sắp xếp

Việc duyệt list được thực hiện bằng hàm map[]

Tại sao cần phải sử dụng các phím trong?

Các key rất quan trọng trong list vì những lý do sau:

  • Key là mã định danh duy nhất và được sử dụng để xác định mục nào đã thay đổi, cập nhật hoặc xóa khỏi danh sách
  • Giúp xác định components nào cần được re-rendered thay vì re-rendered tất cả các components, giúp tăng components

Form trong React là gì?

React sử dụng các biểu mẫu để người dùng có thể tương tác với các ứng dụng web. Sử dụng các biểu mẫu, người dùng có thể tương tác với ứng dụng và nhập thông tin cần thiết bất cứ khi nào cần. Biểu mẫu chứa các thành phần nhất định như trường văn bản, nút, hộp kiểm, nút chọn [option button], v.v.

Các biểu mẫu được sử dụng cho nhiều tác vụ khác nhau như xác thực người dùng, tìm kiếm, lọc, index, v.v.

Làm thế nào để tạo form trong React?

Để tạo form trong React, ta thực hiện như sau:

Đoạn code trên sẽ tạo ra một trường đầu vào có nhãn Name và nút gửi. Nó cũng sẽ cảnh báo người dùng khi nhấn nút gửi.

Làm sao để viết comment trong React?

Về cơ bản, có 2 cách để bạn có thể viết comment:

  • Comment một dòng

  • Comment nhiều dòng

Arrow function là gì? Nó được sử dụng thế nào trong React

Arrow function là cách ngắn gọn để viết dunction cho React. Nó không cần thiết phải liên kết “this” bên trong constructor khi sử dụng arrow function. Điều này ngăn cản các bugs gây ra bởi việc sử dụng ‘this’ trong các lần callbacks React.

Sự khác nhau giữa React và React Native?

ReactReact NativeNăm phát hành20132015Nền tảngWebMobile – Android, iOSHTMLCóKhôngCSSCóKhôngYêu cầuJavaScript, HTML, CSSReact.js

Điểm khác nhau giữa React và Angular?

AngularReactTác giảGoogleFacebookMô hìnhMô hình MVC toàn diệnCác lớp [layer] MVCDOMDOM thựcDOM ảo [Virtual DOM]Liên kết dữ liệuHai chiềuĐơn chiềuRenderingClient-SideServer-SideHiệu suấtKhá chậmNhanh hơn nhờ DOM ảo

Câu hỏi phỏng vấn ReactJS về Components

Component trong React là gì?

Components là những block xây dựng bất kỳ ứng dụng React nào. Một ứng dụng đơn lẻ thường bao gồm nhiều components. Nó chia giao diện nguời dùng thành các phần độc lập, có thể tái sử dụng và có thể được xử lý riêng.

Có 2 loại component trong React:

  • Functional Components: Các loại component này không có state riêng, chỉ chứa các render methods. Do đó, chúng còn được gọi là stateless components [thành phần không trạng thái]. Họ có thể lấy dữ liệu từ các component khác dưới dạng props [properties].

function Greeting[props] {

return

Welcome to {props.name}

;

}

  • Class Components: Các loại component có thể giữ và quản lý state của riêng chúng và có một render method riêng để trả về JSX trên màn hình. Chúng còn được gọi là Stateful components [Thành phần có trạng thái]

class Greeting extends React.Component {

render[] {

return

Welcome to {this.props.name}

;

}

}

Cách sử dụng hàm render[] trong React?

Nó yêu cầu mỗi component phải có function render[]. Function này trả về HTML sẽ được hiển thị trong thành phần.

Nếu bạn cần render nhiều phần tử, tất cả các phần tử phải nằm trong một thẻ cha như

, .

State trong React là gì?

State là một object React tích hợp được sử dụng để chứa dữ liệu hoặc thông tin về component. State trong component có thể thay đổi theo thời gian và bất cứ khi nào nó thay đổi, component đó sẽ re-renders.

Thay đổi trong state có thể xảy ra dưới dạng response đối với user action hoặc các event do hệ thống tạo ra. Nó xác định hành vi của component và cách nó sẽ hiển thị.

Làm thế nào để bạn triển khai State trong React?

State giữ data mà một component sẽ hiển thị trên ứng dụng web. Truy cập vào state properties như hình dưới đây:

Làm thế nào để bạn cập nhật State của component trong React?

Chúng ta có thể cập nhật trạng thái của một thành phần bằng cách sử dụng phương thức ‘setState[]’ tích hợp sẵn:

Props trong React là gì?

Props là viết tắt của Properties. Nó là một object React được tích hợp sẵn có chức năng tương tự như các thuộc tính HTML và lưu trữ giá trị của các thuộc tính của thẻ.

Props cung cấp cách truyền dữ liệu từ component này sang component khác. Props được truyền đến component giống như cách các arguments được truyền trong một hàm.

Làm thế nào để truyền props giữa các components?

Điểm khác nhau giữa State và Props?

StatePropsCách dùngChứa dữ liệu về componentsCho phép truyền dữ liệu từ component sang những components khác như một argumentKhả năng thay đổi [Mutability]Có thể thay đổiKhông thể thay đổiChỉ đọc [Read-Only]Có thể thay đổiLà read-onlyComponent conComponent con không thể truy cậpComponent con có thể truy cậpStateless componentsKhông thể có stateCó thể có props

Higher-order component [HOC] trong React là gì?

Các component bậc cao hoạt động như một container cho components khác, giúp giữ cho các components đơn giản và cho phép tái sử dụng. Chúng thường được sử dụng khi nhiều component phải sử dụng một logic chung.

Làm thế nào để nhúng hai hoặc nhiều component thành một?

Chúng ta có thể nhúng hai hoặc nhiều component thành một bằng cách dưới đây:

Điểm khác nhau giữa Class components và Functional components?

Class ComponentsFunctional ComponentsStateCó thể giữ hoặc quản lý stateKhông thể giữ hoặc quản lý stateĐộ đơn giảnPhức tạp hơn so với stateless componentĐơn giản và dễ hiểuLifecycle methodsCó thể hoạt động với tất cả lifecycle methodsKhông thể hoạt động với tất cả lifecycle methodsTái sử dụngCó thể tái sử dụngKhông thể tái sử dụng

Ví dụ về Class Components

Ví dụ về Functional components:

Giải thích lifecycle methods của components

  • getInitialState[]: Được thực thi trước khi tạo component.
  • componentDidMount[]: Được thực thi khi các component render và được đặt trên DOM
  • shouldComponentUpdate[]: Được gọi khi component xác định các thay đổi đối với DOM và trả về giá trị “true” hoặc “false” dựa trên các điều kiện nhất định.
  • componentDidUpdate[]: Is invoked immediately after rendering takes place.
  • componentWillUnmount[]: Được gọi ngay lập tức trước khi một component bị hủy và ngắt kết nối vĩnh viễn.

Câu hỏi phỏng vấn ReactJS về ReactJS Redux

Redux là gì?

Redux là một thư viện JavaScript mã nguồn mở được sử dụng để quản lý state ứng dụng. React sử dụng Redux để xây dựng giao diện người dùng. Nó là một vùng chứa state container cho các ứng dụng JavaScript và được sử dụng để quản lý state của toàn bộ ứng dụng.

Các components của Redux là gì?

  • Store: Giữ các state của ứng dụng
  • Action: Thông tin nguồn của store
  • Reducer: Chỉ định cách state của ứng dụng thay đổi để đáp ứng với các hành động được gửi đến store

Flux là gì?

Flux là kiến trúc ứng dụng mà Facebook sử dụng để xây dựng các ứng dụng web. Nó điều chỉnh data flows trong ứng dụng React và cung cấp cách quản lý dữ liệu phức tạp trong ứng dụng client-side.

Có một nguồn dữ liệu duy nhất [store] và việc kích hoạt một số hành động nhất định là cách duy nhất để cập nhật chúng. Action gọi dispatcher, và sau đó cửa hàng được kích hoạt và cập nhật dữ liệu của riêng chúng sao cho phù hợp.

Khi một dispatch được kích hoạt và store cập nhật, nó sẽ phát ra một event thay đổi mà các chế độ xem có thể render tương ứng theo đó.

Điểm khác nhau giữa Redux và Flux?

ReduxFlux1.Redux là một thư viện JavaScript mã nguồn mở được sử dụng để quản lý Trạng thái ứng dụngFlux là một kiến trúc, không phải là framework hay thư viện2.Trạng thái của store là bất biếnTrạng thái của store là tùy biến3.Chỉ có thể có một storeCó thể có nhiều store4.Sử dụng reducerSử dụng dispatcher

Câu hỏi phỏng vấn ReactJS về React Router

React Router là gì?

React Router là một thư viện định tuyến được xây dựng lên trên React, được dùng để tạo ra các tuyến trong một ứng dụng React.

Vì sao ta cần sử dụng React Router?

React Router được sử dụng vì:

  • Nó duy trì cấu trúc, hành vi nhất quán và được sử dụng để phát triển ứng dụng web single-page
  • Cho phép nhiều chế độ xem trong một ứng dụng bằng cách xác định nhiều Router trong ứng dụng React.

Định tuyến React [React routing] khác như thế nào so với định tuyến quy ước [conventional routing]?

STTReact RoutingConventional routing1.Một trang HTMLMỗi chế độ xem là 1 file HTML mới2.Điều hướng người dùng nhiều chế độ xem trên cùng 1 fileĐiều hướng người dùng nhiều file trên cùng 1 chế độ xem3.Trang không được refresh bởi vì nó là single fileTrang được refresh mỗi khi user điều hướng4.Cải thiện hiệu suấtHiệu suất chậm

Làm thế nào để triển khai React routing?

Bạn có thể triển khai router trong ứng dụng React bằng các cách sau:

Xem xét các component App, About và Contact trong ứng dụng

Câu hỏi phỏng vấn ReactJS về Styling

Làm thế nào để style components trong React?

Bạn có thể tạo style cho React components bằng các cách sau:

  • Inline Styling

  • JavaScript Object

  • CSS Stylesheet

Giải thích cách sử dụng CSS modules trong React

File CSS Module được tạo bằng phần mở rộng .module.css

CSS bên trong module chỉ khả dụng cho component đã nhập nó, vì vậy không có xung đột đặt tên trong khi tạo kiểu cho các component.

Như vậy, bài viết đã tổng hợp tất cả những câu hỏi phỏng vấn thường gặp nhất cho các lập trình viên React. Hy vọng câu hỏi này sẽ giúp bạn vượt qua vòng phỏng vấn và gây ấn tượng với nhà tuyển dụng nhé!

Chủ Đề