Để tiếp tục với chuỗi bài viết về ReactJS, hôm này chúng ta sẽ cùng nhau tìm hiểu về các cú pháp cơ bản trong ReactJS với những phần chính sau: Components trong ReactJS, props trong ReactJS, và state trong ReactJS. Đây là những kiến thức cơ bản nhưng đồng thời nó cũng sẽ là những kiến thức rất quan trọng giữ vai trò quyết định trong toàn bộ dự án ReactJS về sau này. Không dài dòng thêm nữa chúng ta hãy cùng đến với những Cú pháp cơ bản trong ReactJS ngay sau đây.
>>> Xem thêm bài viết trong chuỗi bài về ReactJS tại đây:
- Bài 1: Tìm hiểu về ReactJS
- Bài 2: Cài đặt môi trường phát triển ReactJS
- Bài 3: Cú pháp cơ bản trong ReactJS
- Bài 4: Component trong ReactJS
- Bài 5: Xử lý sự kiện trong ReactJS
- Bài 6: Routing và định tuyến trong ReactJS
- Bài 7: Sử dụng Hook để giao tiếp với API trong ReactJS
- Bài 8: Quản lý trạng thái ứng dụng với Redux
- Bài 9: Thiết kế website responsive với ReactJS
- Bài 10: Triển khai ứng dụng ReactJS với Nginx
1. Components trong ReactJS
1.1. Khái niệm về Components trong ReactJS
Components là một trong những thành phần cơ bản và quan trọng nhất trong ReactJS. Với việc có thể chia nhỏ các component, nó giúp cho mã nguồn ReactJS trở nên dễ đọc, dễ bảo trì và phát triển một cách linh hoạt hơn.
Một số đặc điểm về Components trong ReactJS:
- Tái sử dụng: Mỗi component có thể được tái sử dụng lại tại nhiều nơi khác nhau trong ứng dụng ReactJS. Việc này khiến cho mã ReactJS giảm sự lặp lại trong mã nguồn, đồng thời nó tăng khả năng bảo trì trong mã nguồn ReactJS.
- Phân tách chức năng: Trong ReactJS mỗi component được tạo ra cho một thành phần cụ thể của giao diện người dùng hoặc các tính năng cụ thể trong ứng dụng ReactJS. Việc này giúp phân tách chức năng cũng như tăng tính tổ chức mã nguồn một các rõ ràng hơn.
- Dễ đọc và dễ hiểu: Với việc sử dụng cú pháp JSX tương tự mã HTML, mã nguồn trở nên dễ đọc và dễ hiểu hơn.
- Quản lý state: Trong ReactJS, Components dựa vào trạng thái state để phản ánh các thay đổi trong dữ liệu, đồng thời cập nhật giao diện tương ứng.
- Function Components và Class Components: Cho đến hiện tại ReactJS hỗ trợ 2 loại components chính là function components và class components. Function components đơn giản và ngắn gọn hơn, trong khi class components chưa nhiều phương thức và có khả năng quản lý state.
- Props: Props là một trong những cách truyền dữ liệu từ component cha sang component con. Việc truyền dữ liệu giữa các components giúp cho component có khả năng tái sử dụng cũng như linh hoạt hơn.
>>> Bài viết liên quan:
- ReactJS là gì? Tất tần tật những điều căn bản về ReactJS
- Redux là gì? Hiểu rõ cơ bản cách dùng Redux
- Giải thích về Asynchronous trong JavaScript và cách thức hoạt động
1.2. Class Component trong ReactJS
Mỗi class component cần phải được extends
từ React.Component
. Mỗi component cũng sử dụng phương thức render()
để trả về mã HTML.
Ví dụ:
class Home extends React.Component {
render() {
return <h1>This is Home page!</h1>;
}
}
1.3. Function Component trong ReactJS
Tương tự, chúng ta có mã sau để tạo ra component bằng cách sử dụng Function trong ReactJS.
Ví dụ:
function Home() {
return <h1>This is Home page!</h1>;
}
1.4. Tái sử dụng Components
- Ví dụ 1:
function Welcome() {
return <p>Hello this is page of Stringee Company</p>;
}
function Home() {
return (
<>
<h1>This is Home page@</h1>
<Welcome />
</>
);
}
- Ví dụ 2:
Welcome.js
function Welcome() {
return <p>Hello this is page of Stringee Company</p>;
}
export default Welcome;
Home.js
import Welcome from './Welcome.js';
function Home() {
return (
<>
<h1>This is Home page@</h1>
<Welcome />
</>
);
}
2. Props trong ReactJS
Trong ReactJS, properties
(thuộc tính) hay props
là cách để truyền dữ liệu từ component cha xuống component con. Cụ thể, props
là một đối tượng chứa các giá trị hoặc các đối tượng khác mà một component có thể nhận được từ component cha. Sau đây chúng ta cùng nhau tìm hiểu về các cách sử dụng props
trong ReactJS:
- Props trong Class Components:
Trong Class Components chúng ta có thể sử dụng từ khóa this
để truy cập props như sau:
// Class component
class Welcome extends React.Component {
render() {
return <h1>My name company is {this.props.company}!</h1>;
}
}
// Sử dụng component với props
const element = <Welcome company="Stringee" />;
- Sử dụng nhiều props:
Chúng ta có thể sử dụng đồng thời nhiều giá trị props trong component như sau:
// Component con
function Welcome(props) {
return (
<div>
<p>My company's name, {props.company}!</p>
<p>Email: {props.email}</p>
</div>
);
}
// Sử dụng component với nhiều props
const userElement = <Welcome company="Stringee" email="[email protected]" />;
// Component con
function Welcome({company, email}) {
return (
<div>
<p>My name company is, {company}!</p>
<p>Email: {email}</p>
</div>
);
}
// Sử dụng component với nhiều props
const userElement = <Welcome company="Stringee" email="[email protected]" />;
- Sử dụng children prop
children
là một prop đặc biệt trong ReactJS, prop này chứa nội dung bên trong thẻ mở và thẻ đóng của một component:
// Component con
function Welcome(props) {
return <div>{props.children}</div>;
}
// Sử dụng component với children prop
const boxedElement = (
<Welcome>
<p>My name company is, Stringee!</p>
<p>Email: [email protected]</p>
</Welcome>
);
3. State trong ReactJS
Trong ReactJS, các state
đề cập đến trạng thái nội tại của một component. Components sẽ theo dõi sự thay đổi của các đối tượng state
, khi state
thay đổi đồng thời trạng thái component thay đổi, lúc này React sẽ tự động render lại component để phản ánh những thay đổi này lên giao diện người dùng.
- Khởi tạo và sử dụng
state
import React, { Component } from 'react';
class Counter extends Component {
constructor(props) {
super(props);
this.state = {
count: 0
};
}
render() {
return (
<div>
<p>Count: {this.state.count}</p>
</div>
);
}
}
Ở đây, chúng ta sử dụng state count
với giá trị ban đầu là 0
. Trong phương thức render()
, chúng ta sử dụng lại giá trị của nó với cú pháp this.state.count
. Mỗi khi giá trị của count
thay đổi thì giao diện người dùng cũng sẽ được cập nhật lại giá trị count
mới nhất.
- Cập nhật
state
Với phương thức setState
chúng ta có thể cập nhật lại dữ liệu của biến count
. Như đã nói ở trên giao diện người dùng sẽ được cập nhật khi giá trị count
thay đổi như sau:
import React, { Component } from 'react';
class Counter extends Component {
constructor(props) {
super(props);
this.state = {
count: 0
};
}
increaseCount() {
this.setState({ count: this.state.count + 1 });
}
render() {
return (
<div>
<p>Count: {this.state.count}</p>
<button onClick={() => this.increaseCount()}>Increase</button>
</div>
);
}
}
- Sử dụng
state
trong Function Components
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
<div>
<p>Count: {count}</p>
<button onClick={() => setCount(count + 1)}>Increase</button>
</div>
);
}
Trong React Hooks, chúng ta sử dụng state
bằng cách sử dụng hook useState
, với hook này trả về một mảng. Trong đó, phần tử đầu tiên là giá trị hiện tại của state
và phần tử thứ hai là một hàm để cập nhật state (setCount
)
State là một trong những khái niệm quan trọng trong ReactJS, nó giúp quản lý trạng thái của các component và làm cho ứng dụng ReactJS trở nên động và phản ánh thay đổi lên giao diện người dùng.
Tổng kết
Các khái niệm cơ bản trên là nền tảng rất quan trọng trong ReactJS để có thể xây dựng một ứng dụng hiệu quả và dễ bảo trì trong tương lai. Việc hiểu rõ về cách tạo components
, sử dụng props
và quản lý state
sẽ giúp chúng ta có thể làm việc với ReactJS một các hiệu quả và tốt hơn. Hy vọng rằng bài viết này đã cung cấp cho các bạn các thông tin hữu ích về những gì cơ bản nhưng cũng rất quan trọng trong ReactJS. Hẹn gặp lại các bạn trong những bài viết tiếp theo trong series về ReactJS này.
Stringee Communication APIs là giải pháp cung cấp các tính năng giao tiếp như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài CSKH cho phép tích hợp trực tiếp vào ứng dụng/website của doanh nghiệp nhanh chóng. Nhờ đó giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp bởi thông thường nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.
Bộ API giao tiếp của Stringee hiện đang được tin dùng bởi các doanh nghiệp ở mọi quy mô, lĩnh vực ngành nghề như TPBank, VOVBacsi24, VNDirect, Shinhan Finance, Ahamove, Logivan, Homedy, Adavigo, bTaskee…
Quý bạn đọc quan tâm xin mời đăng ký NHẬN TƯ VẤN TẠI ĐÂY: