- vừa được xem lúc

Thích học ReactJS - React JSX

0 0 21

Người đăng: Lâm Kim Phú

Theo Viblo Asia

Bất cập khi dùng React thuần

Ở bài trước mình đã hướng dẫn các bạn cách dùng React.createElement để tạo element và component trong React. Với function createElement thì chúng ta đỡ cực hơn khi tạo element so với dùng Javascript. Tuy nhiên, bằng việc dùng React.createElement, rất khó để có thể hình dung cấu trúc của file HTML sẽ trong như thế nào. Do đó, React cung cấp cho lập trình viên một cách đơn giản hơn đó là React JSX. Với React JSX, bạn có thể tạo element nhanh hơn nữa cũng như dễ dàng thấy được cấu trúc HTML của component hoặc 1 trang nào đó. Cùng bắt đầu tìm hiểu React JSX nhé.

Tạo element đơn giản

Quay trở lại dự án đã tạo trong bài này ReactJS giới thiệu. Các bạn chú ý kĩ là file App của chúng ta không phải là App.js mà là App.jsx. Đây là cách đặt tên file để bắt đầu sử dụng React JSX. Xoá hết tag trong này, các bạn code theo như sau:

Ở đây, chúng ta đang tạo một component tên là App. Để tạo component trong JSX thì chúng ta cần phải trả về element hoặc rất nhiều elements. Trong đây, mình chỉ trả về một element với thẻ tag là h1 và nội dung là Hello React from www.thichhoc.com. Thực chất ra là gì, là <h1>Hello React from www.thichhoc.com</h1> trong JSX sẽ tự động chuyển thành React.createElement('h1', {}, 'Hello React from www.thichhoc.com') cho chúng ta. Cho nên, khi dùng JSX, chúng ta sẽ khoẻ hơn, không cần phải tạo element bằng cách gọi phương thức createElement nữa và code trong cũng tường minh hơn. Nhìn vào cái là biết cấu trúc HTML của component sẽ như thế nào.

Đây là kết quả, chúng ta có element h1 như mong muốn và element này nằm trong thẻ tag với id là root.

Nhiều element trong 1 component

Giờ mình muốn tạo h1 là lời chào và thẻ p là mô tả của trang thì mình sẽ làm như thế nào?

Easy game, quá đơn giản. Tuy nhiên, đừng mừng vội vì sẽ có lỗi. Vì JSX cần có một element lớn bọc những element nhỏ khi chúng ta tạo component cho nên với đoạn code bên trên, nó sẽ không chạy vì không có một element lớn nào bọc lấy h1 và p cả. Do đó chúng ta phải tạo một thẻ tag lớn, để làm element cha cho hai element chúng ta mới tạo. Và đừng quên hai dấu (), đó cũng là yêu cầu từ JSX.

Kết quả, các bạn sẽ thấy cấu trúc của HTML sẽ y chang với lại cấu trúc HTML trong component App, tuyệt vời.

Thuộc tính

Vậy làm sao để có những thuộc tính như id, class, .... Chúng ta thêm như bình thường hay thêm vào tag của HTML thôi. Tuy nhiên có lưu ý là những từ trùng với keyword thì sẽ phải thay đổi một xíu ví dụ như class thì phải thay đổi thành className.

Sẽ cho ra kết quả như thế này

Component trong component

Ở bài trước mình đã đề cập vấn đề là nếu mình muốn tái sử dụng lại đoạn code có lời chào và mô tả thì mình nên tách ra thành 1 component khác. Nếu không sẽ rất cực khi thay đổi và dễ gây ra bug và lỗi. Để tạo một component nữa trong JSX thì chúng ta cũng là y chang như component app. Dùng function và trả về 1 hoặc nhiều element. Và để dùng component mới tạo trong component App, chúng ta sẽ mở tag ra, tên component mới tạo và đóng tag lại. Đó là cách để gọi component đã tạo ra để sử dụng.

Ở đây chúng ta cũng bị vấn đề phải có một thẻ div trong component Greeting, mình không thể bỏ nó được vì React sẽ báo lỗi. Trong bài trước, mình đã dùng React.Fragment, mình cũng có thể dùng tương tự trong JSX. Tuy nhiên, JSX có cách gọn hơn là bạn chỉ cần mở tag rỗng và đóng tag rỗng, vậy là xong.

Kết

Bằng việc sử dụng JSX, mọi việc sẽ trở nên dễ dàng hơn nhiều thay vì phải dùng createElement từ React. Đó là tất cả về JSX, chúc các bạn thành công.

Các bạn xem thêm video tại đây nhé: https://youtu.be/09J2d9WzbIA

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 525

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 433

- vừa được xem lúc

Một số phương thức với object trong Javascript

Trong Javascript có hỗ trợ các loại dữ liệu cơ bản là giống với hầu hết những ngôn ngữ lập trình khác. Bài viết này mình sẽ giới thiệu về Object và một số phương thức thường dùng với nó.

0 0 153

- vừa được xem lúc

Tìm hiểu về thư viện axios

Giới thiệu. Axios là gì? Axios là một thư viện HTTP Client dựa trên Promise.

0 0 145

- vừa được xem lúc

Imports và Exports trong JavaScript ES6

. Giới thiệu. ES6 cung cấp cho chúng ta import (nhập), export (xuất) các functions, biến từ module này sang module khác và sử dụng nó trong các file khác.

0 0 110

- vừa được xem lúc

Bài toán đọc số thành chữ (phần 2) - Hoàn chỉnh chương trình dưới 100 dòng code

Tiếp tục bài viết còn dang dở ở phần trước Phân tích bài toán đọc số thành chữ (phần 1) - Phân tích đề và những mảnh ghép đầu tiên. Bạn nào chưa đọc thì có thể xem ở link trên trước nhé.

0 0 245