React dành cho người mới bắt đầu
Đối với bất kỳ bạn lập trình viên mới nào thì React hiện tại đang là một thư viện JavaScript được sử dụng rộng rãi, được phát triển và duy trì bởi Meta (tiền thân là Facebook). React đã trở thành một thư viện front-end được ưa chuộng nhất và lên tục được phát triển về cả mức độ phổ biến và tầm ảnh hưởng của mình.
Để cho các bạn mới bắt đầu tiếp cận với thế giới React một cách thuận tiện nhất, mình có tổng hợp một số các hướng dẫn, gợi ý dành cho các bạn trong bài viết này hôm nay. Chúng ta cùng bắt đầu nhé
Sử dụng Create React App để khởi tạo projects
Một trong những chức năng đơn giản mà hiệu quả nhất của React là khả năng tạo ra một dự án mới bằng một dòng lệnh duy nhất: sử dụng Create React App. Bạn có thể chạy 1 trong 3 dòng lệnh dưới đây:
- npx create-react-app my-app
- npm init react-app my-app
- yarn create react-app my-app
Đây là cách nhanh và cũng là tốt nhất dành cho các bạn mới học React, 1 project React với tên “my-app” (tất nhiên các bạn có thể đổi tên nó) được tạo ra với đầy đủ các package cần thiết cho bạn.
Sau khi cài đặt, chúng ta có thể ngay lập tức chạy ứng dụng của mình ở chế độ development bằng lệnh: “npm start” hoặc “fiber start”, cổng (port) mặc định sẽ là 3000, thậm chí nó còn tự động mở trình duyệt lên và chạy ứng dụng vừa được tạo ra.
Tìm hiểu những cú pháp cơ bản
React là thư viện thân thiện với lập trình viên, hãy bắt đầu học và nắm chắc những khái niệm dưới đây, bạn có thể tự tin trong việc viết code React:
- Props: là 1 object được truyền vào 1 component, cho phép giao tiếp giữa các component bằng cách truyền tham số qua lại giữa component cha và component con
- State: là phần dữ liệu động bên trong component của bạn, nó có thể thay đổi theo thời gian thông qua tương tác của component với người dùng
- Components: bản chất là 1 function nhận đầu vào chính là props và trả về JSX (1 cú pháp mở rộng trong React để viết HTML). Components có khả năng mở rộng và tái sử dụng – đây cũng chính là đặc trưng và ưu điểm lớn nhất của React
function Links(props) {
const [linkedin, setLinkedin] = useState("");
return (
<div>
<h3>Links</h3>
<a href={props.github}>{props.github}</a>
<a href={linkedin}>{linkedin}</a>
</div>
);
}
Đoạn code trên là cú pháp cơ bản nhất trong React, thể hiện 1 component Links với props “github” và state “linkedin”.
- React Hooks: các function đặc biệt cho phép chúng ta “móc nối” vào các biến state bên trong components. Để sử dụng hook, trước tiên hãy import và gọi chúng bên trong component của bạn. Để làm quen, mình khuyên các bạn hãy tìm hiểu kỹ 2 hooks: useState và useEffect
- useState: sử dụng để truy cập và sửa đổi các biến state của components
- useEffect: sử dụng để thực hiện những side effect (tác động từ bên ngoài function chính) như: lấy dữ liệu, cập nhật các phần tử bên trong components, …
import React, { useState, useEffect } from "react";
function Links(props) {
const [timeRemaining, setTimeRemaining] = useState(1);
useEffect(() => {
if (timeRemaining === 0) {
setTimeRemaining(10);
return;
}
}, []);
}
Hãy giữ cho component của bạn “nhỏ vừa đủ”
Thực tiễn trong các dự án React, component nên được chia càng nhỏ các tốt về mặt chức năng và không nên bị trừu tượng hóa quá mức. Theo kinh nghiệm của mình, hãy bắt đầu từ App component ở top (bao trọn cả tất cả các components khác), sau đó chia nhỏ dần các thành phần giao diện nhỏ hơn đến mức chức năng. Điều này sẽ giúp ứng dụng của bạn:
- Dễ dàng debug gỡ lỗi hơn
- Code bạn viết dễ hiểu hơn
- Cho phép tái sử dụng và khả năng mở rộng component tốt hơn
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
function App() {
return (
<div>
<Welcome name="Sara" />
<Welcome name="Cahal" />
<Welcome name="Edite" />
</div>
);
}
Tham khảo tin tuyển dụng IT Fresher, Inten mới nhất tại đây!
Đừng lạm dụng state
Một trong những sai lầm lớn mà các bạn mới làm React hay gặp phải là việc tạo ra quá nhiều biến state không cần thiết trong các trường hợp mà chỉ cần sử dụng props kết hợp với logic có điều kiện là đủ. Chúng ta đều biết mỗi khi biến state thay đổi thì component sẽ thực hiện việc re-render lại, và khi bạn tạo ra quá nhiều biến state trong 1 component cũng đồng nghĩa với việc có thêm nhiều “nguồn tác động” đến việc cập nhật hiển thị component.
Hãy xem xét việc nên hay không nên thêm 1 biến state mới vào 1 component, có 1 vài yếu tố các bạn có thể cân nhắc
- Component của bạn có tĩnh và không thay đổi hay không?
- Bạn có thể tính toán trước giá trị props theo logic có sẵn để tạo ra các trạng thái component mong muốn hay không?
Nếu câu trả lời là có thì tốt nhất là không sử dụng thêm biến state lúc này.
const [option1, setOption1] = useState(false);
const [option2, setOption2] = useState(false);
const [option3, setOption3] = useState(false);
const [option4, setOption4] = useState(false);
const [option5, setOption5] = useState(false);
Tránh các lỗi không đồng bộ
Khi bạn sử dụng state trong React, luôn luôn phải để ý rằng việc setState (thay đổi giá trị state) là bất đồng bộ. Điều đó có nghĩa là biến state sẽ không thay đổi ngay lập tức mà nó phải đợi việc re-render component. Để tránh các lỗi xảy ra do việc cập nhật dữ liệu 1 cách không đồng bộ, hãy tìm hiểu vòng đời của component trong React.
Thêm 1 lời khuyên nữa cho các bạn trong trường hợp này, hãy “bắt” sự kiện biến state thay đổi, thay vì “chờ” biến state đó thay đổi xong.
const [state, setState] = useState(0);
...
setState(2020);
console.log(state); // 0
Kết bài
Sẽ còn nhiều thứ phải học để các bạn có thể thành thạo với React, hy vọng những gợi ý trên sẽ giúp các bạn có thể nhanh chóng và dễ dàng hơn từ lúc bắt đầu làm quen với thư viện này. Cảm ơn các bạn đã đọc bài viết, hẹn gặp mọi người trong các bài sắp tới của mình.
Tác giả: Phạm Minh Khoa
Xem thêm:
- Lập trình viên mobile cần học những gì?
- Flutter cơ bản – Framework di động được yêu thích nhất hiện nay?
- Những câu hỏi phỏng vấn React thường gặp
Bạn đang tìm việc làm UI/UX Designer hay việc làm ngành IT? Tham khảo ngay những tin tuyển dụng mới nhất trên TopDev!
- T Tổng hợp 50+ thuật ngữ chuyên ngành dành cho Frontend Developer
- T Top 5 thư viện Slider thông dụng cho lập trình viên Frontend
- A AngularJS Là Gì? AngularJS và Angular có khác nhau?
- 1 14 công cụ tuyệt vời dành cho lập trình viên Frontend
- 7 7 thư viện CSS Animation cực hay cho lập trình viên Frontend
- S State trong frontend là gì? Tại sao nên giỏi cái này?
- C Chia sẻ kinh nghiệm viết code Front-end hiệu quả và bảo mật
- T Tại sao Vue.js được nhiều frontend developer lựa chọn?
- F Fix lỗi Force layout, reflow ảnh hưởng tới performance Frontend
- T Thuật toán frontend: Tìm node chứa content chính