1) Thư mục node_modules và file package.json là gì?
- NodeJS Modules là một thư viện Javascript, nó là một tập hợp các hàm (function) đối tượng và các biến, mà bạn có thể đưa vào ứng dụng của bạn để sử dụng. Sử dụng Module giúp đơn giản việc viết code, và quản lý code trong ứng dụng của bạn. Thông thường mỗi module sẽ được viết trong một tập tin riêng rẽ.
package.json là file đặc biệt, bạn có thể hiểu nó là 1 document giúp bạn biết được trong cái đống code này cần có những gói nào (nodejs xây dựng dựa trên nhiều module gọi là package, quản lý thông quan npm). Package.json là file cấu hình của npm, giúp cho npm hiểu nó cần phải cài đặt cái gì, thông tin về ứng dụng, phiên bản…File package.json được viết bằng json. File package.json được đặt ở thư mục gốc của project.
Các thành phần của Package.json
Package.json chứa rất nhiều thông tin, thường thì ta chỉ quan tâm đến vài thuộc tính chính thôi.
name
version
MAJOR version when you make incompatible API changes
MINOR version when you add functionality in a backwards-compatible manner
PATCH version when you make backwards-compatible bug fixe
Ví dụ:
{
"name" : "Vote-sc-UIT",
"version" : "1.1.3"
}
description
author
dependencies
Ví dụ: ta có package sails hoặc express là framework, jade là gói template engine, socket.io hỗ trợ ứng dụng realtime, …
Để làm việc này, bạn cần phải install gói đó bằng npm. Thuộc tính dependencies giúp npm biết được cần phải cài đặt những package nào.
2) Trình bày quy tắc đặt tên function, tên biến và tên Component
- Tên lớp phải bắt đầu bằng trữ in hoa.
- Tên của file làm việc khi code thường có dấu –
- Để chuyên nghiệp thì tên variable, function, class . . . nên đặt bằng tiếng anh (không nhất thiết nhưng thực ra chúng ta nên làm quen dần với điều này)
- Đặt tên biến dễ gợi nhớ, dễ cho cả người lập trình và người đọc code. Cẩn thận thì thêm chú thích vào cho chắc nhé!
- Tên hằng số thì nên viết hoa hết, các từ cách nhau bằng dấu gạch _
- Đặt tên biến một cách bao quát, giải thích tác dụng, lý do nó tồn tại, giá trị mà nó trả về.
- Tên đặt phải làm rõ nghĩa, tránh bị sai lạc, hiểu sai vấn đề.
- Dùng một cái tên dễ dàng đọc, có thể đọc được và tuyệt đối không được sai chính tả nhé!
- Tên biến, hàm, lớp nên đặt một cách dễ tìm kiếm, dễ nhớ. Điều này rất thuận lợi với chúng ta khi code
3) Lifecycle component hoạt động như nào
Gồm 3 giai đoạn:
Tạo ra (Mounting)
Thay đổi (Updating)
Hủy bỏ (UnMounting)
DidUpdate() có thể không được gọi hoặc gọi nhiều lần nếu có update component.(khi có props thay đổi, state thay đổi hoặc bắt buộc update (forceUpdate)
Khi render sẽ trigger gọi hàm DidUpdate()
4) Thành thạo cách sử dụng và hiểu khi nào cần sử dụng React Hook chính sau useState, useEffect, uselayouteffect, useRef
Đầy đủ tính năng như class component.
Hưởng được các lợi ích của functional component như dễ test một hàm (nhận đầu vào và trả ra kết quả).
Loại bỏ được từ khoá “this” thường gây nhầm lẫn khi dùng class.
Không cần phải viết lại các class component cũ. Các component mới nên viết với hooks.
React Hooks chỉ được sử dụng trong functional component.
Dễ dàng custom các hooks như ý muốn theo từng nghiệp vụ khác nhau.
5) Hiểu rõ cách sử dụng React Hook nâng cao useMemo, useCallback, useReducer, useContext
6) Phân biệt ưu/nhược của class component và function component
- Functional Component - Stateless Components:
Trái ngược với Class Component, Functional Component trước đây vốn không thể làm những thứ phức tạp như làm việc quản lí với state. Nhưng với những bản mới nhất của React đã cập nhật thêm React Hooks để cho phép chúng ta làm việc đó thông qua những function như useState() . Các ban có thể vào trang chủ của React để đọc chi tiết về chúng. Những bài viết sau trong series này mình sẽ đề cập về hooks hay lifecycles của Component.
7) "export default function A "khác gì với "export function A"
8) Callback function là gì? cách hoạt động?
Nói một cách phức tạp hơn : Trong Javascript, functions là objects,do đó nó có thể nhận tham số là function, và cũng có thể trả về một function. Vì vậy bất cứ function nào được truyền vào như một tham số và được gọi sau đó sẽ có tên là callback function.
9) Hiểu rõ cách sử dụng React-Redux.
10) Tại sao cần dùng react-redux, khi nào cần sử dụng và khi nào không nên sử dụng.
11) Hiểu animation là gì và cách dùng thư viện react-spring?
- cách dùng thư viện react-spring
12) Tại sao phải đặt tên Component là viết hoa đầu từ, nếu viết thường được không, tại sao
13) Thành thạo sử dụng các component của thư viện Antdesign, input, button, menu, drawer, popover, popconfirm, popup, datepicker, select, table,... Nắm chắc cách bố trí layout sử dụng component Row, Col
14) Hiểu cách sử dụng thư viện moment, cách format Datetime sang string,...?
- Cách format Datetime sang string: sử dụng String.Format
15) Trong một array component, tại sao mỗi component phải có unique key?
16) Tại sao luôn nên sử dụng image có format SVG?
17) Nắm về websocket, cách sử dụng thư viện @microsoft/signalr?
18) Cookie là gì, cách sử dụng js-cookie?
19) Để xuất trang in ra trình duyệt, bạn sử dụng thư viện hoặc những cách nào?
Ngoài những kiến thức cơ bản CSS cần nắm, cần nằm các điểm nâng cao sau:
1) Responsive là gì, giải thích @media only screen and (min-width: 960px) là gì?
2) Hiểu rõ cách xây dựng layout sử dụng liblary Bootstrap?
3) Nhớ tên và hiểu rõ công dụng phần lớn class trong Bootstrap, ví dụ: ps-2 là gì, col-5 khác col-md-5 như thế nào, <div class="col-8 col-lg-1"> giải thích sự thay đổi của element div khi viết class như ví dụ?
4) Thành thạo sử dụng css Flex, Flex-grow-1 là gì?
5) Khi nào thì cần sử dụng thuộc tính css position: absolute?
6) Trong ví dụ ".sidebar > div { color: red }" ký tự ">" là gì?
7) div { width: calc(100% - 320px) } giải thích cách viết trên?
Các kiến thức javascript cần nắm:
1) Để lấy data từ API ta sử dụng function hoặc thư viện gì?
useEffect sẽ giúp bạn xử lý các logic trong vòng đời của component và được gọi khi component có sự thay đổi
2) Mô tả ý nghĩa sử dụng của hàm array.push, array.map, array.forEach, array.find, aray.sort, array.filter, array.concat, array.indexof, array.reduce, array.splice
3) FormData data = new FormData() là gì, khi nào cần sử dụng?
- nó cho phép chúng ta xây dựng các đối tượng form tự động, có thể bao gồm cả các tệp tin từ hệ thống tệp tin của người dùng và sau đó gửi form này thông qua AJAX.
4) JSON.parse(result), JSON.stringify(data) là gì, khi nào cẩn sử dụng?
- JSON.stringify(data) làm điều ngược lại - lấy một đối tượng JavaScript và chuyển đổi nó thành một chuỗi JSON.
5) Trong ES6 cách để copy một array hoặc một object ta sử dụng cú pháp như thế nào?
const copy = numbers.slice();
6) Khi lấy data từ API, các method HTTP: GET, POST, PUT, PATCH, DELETE khác nhau như thế nào?
- POST: hay với action store để lưu dữ liệu, bạn cần gửi request lên server với method POST
7) setTiemout, setInterval là gì và nêu những trường hợp thực tế cần sử dụng.
- Hàm setInterval() thường được sử dụng để thiết lập độ trễ cho các hàm sẽ được thực hiện lặp lại như là hiệu ứng

0 Nhận xét