• Tác giả
  • Bản quyền
  • FAQs
  • Liên hệ
Tech News, Magazine & Review WordPress Theme 2017
  • Home
  • WordPress
  • JavaScript
  • Mobile Development
  • PHP
  • Laravel
  • Phần Mềm
No Result
View All Result
  • Home
  • WordPress
  • JavaScript
  • Mobile Development
  • PHP
  • Laravel
  • Phần Mềm
No Result
View All Result
IZWEBZ – Blog học lập trình, thiết kế web cơ bản & chuyên sâu
No Result
View All Result
Home React

Làm quen Với React và JSX

Demon Warlock by Demon Warlock
2 Tháng Ba, 2022
Làm quen Với React và JSX
420
SHARES
1.5k
VIEWS
Share on FacebookShare on Twitter

Trong hướng dẫn này, chúng ta sẽ làm quen với việc tạo một ứng dụng React và cố gắng hiểu những khái niệm cơ bản về JSX. Hướng dẫn này giả sử rằng bạn đã có một kiến thức cơ bản về HTML và JavaScript.

React là gì?

React là một thư viện JavaScript được phát triển bởi Facebook để quản lý giao diện người dùng cho các ứng dụng web một cách dễ dàng. Một trong những điểm mạnh của React đó là nó giúp tạo ra các thành phần giao diện người dùng dễ quản lý, giúp dễ dàng hơn để tăng độ lớn của các ứng dụng web. React hoạt động dựa trên khái niệm về Virtual DOM (hay còn gọi là DOM Ảo), nơi nó lưu giữ một ánh xạ của DOM thật. Bất cứ khi nào thay đổi xảy ra, React sẽ chạy một tiến trình khác, xác định sự thay đổi và cập nhật nó vào DOM thật sự. Khái niệm Virtual DOM giúp cho ứng dụng kết xuất nhanh hơn và cải thiện hiệu suất.

JSX là gì?

JSX là một cú pháp mở rộng cho JavaScript, tương tự như XML. Dưới đây là một ví dụ:

ReactDOM.render(
  <h1>Welcome React, TutsPlus !!</h1>,
  document.getElementById('container')
);

Code JSX tương tự như HTML nhưng thật sự nó là một sự pha trộn giữa JavaScript và HTML. Đoạn code ở trên kết xuất thông báo bên trong thẻ h1 trong phần tử container. JSX nhanh hơn JavaScript vì nó thực hiện tối ưu hóa khi biên dịch mã nguồn. JSX cũng được khuyên dùng hơn vì nó dễ sử dụng hơn so với code thuần JavaScript.

Theo tài liệu hướng dẫn chính thức thì:

JSX là một cú pháp mở rộng giống XML cho ECMAScript nhưng không có bất kỳ ngữ nghĩa nào được xác định. Nó KHÔNG dự định được cài đặt bởi các engine hoặc trình duyệt. KHÔNG phải là một đề xuất để kết hợp JSX vào chính đặc tả ECMAScript. Nó dự định sẽ được sử dụng bởi các preprocessor khác nhau (transpiler) để biến đổi các token này thành ECMAScript tiêu chuẩn.

Tại sao nên Sử dụng JSX?

Không bắt buộc phải sử dụng JSX khi làm việc với ứng dụng React. Bạn có thể sử dụng code thuần JavaScript. Nhưng sử dụng JSX có những ưu điểm riêng của nó:

1. So với JavaScript, thì viết JSX sẽ dễ hơn. Nó đơn giản như việc mở và đóng các thẻ XML. Đây là một ví dụ về JSX:

<div>
<p>Welcome to TutsPlus</p>
</div>

Đây là code React đã được biên dịch:

"use strict";

React.createElement(
  "div",
  null,
  React.createElement(
    "p",
    null,
    "Welcome to TutsPlus"
  )
);

2. Code JSX đảm bảo tính dễ đọc và làm cho việc bảo trì được dễ dàng hơn.

3. JSX tối ưu hóa code khi biên soạn, vì vậy nó chạy nhanh hơn so với code JavaScript tương đương.

Bắt đầu

Hãy cùng tìm hiểu sâu hơn bằng cách viết một số code JSX và kết xuất nó trên trình duyệt. Để bắt đầu tạo một ứng dụng React, hãy tạo một trang index.html đơn giản với cấu trúc trang như sau:

<html>
<head>
    <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react.js"></script>
  <script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react-dom.js"></script>
	<script src="//unpkg.com/babel-core@5.8.38/browser.min.js"></script>

	<script type="text/babel">
	    // JSX code would be here
	</script>
</head>
<body>
	<div id="container">

	</div>
</body>
</html>

Như đã thấy trong đoạn code ở trên, chúng ta đã tham chiếu các script react và react-dom bên trong trang index.html. Chúng ta cũng đã sử dụng tham chiếu script babel, script này sẽ chuyển đổi code JSX thành các cuộc gọi hàm react. Ví dụ, hãy xem xét code JSX sau:

var grp = <div>
  <p>Welcome to TutsPlus</p>
</div>;

Babel sẽ chuyển đổi code JSX ở trên sang hàm react được yêu cầu như sau:

var grp = React.createElement(
  "div",
  null,
  React.createElement(
    "p",
    null,
    "Welcome to TutsPlus"
  )
);

Viết các Thành phần React bằng JSX

Hãy tạo một thành phần React để hiển thị thông điệp chào mừng. Code sẽ như sau:

<script type="text/babel">
	var Message = React.createClass({
		render:function(){
			return <h1>Welcome to TutsPlus</h1>
		}
	});

	ReactDOM.render(<Message />,document.getElementById('main'));
</script>

Message là một thành phần react, nó trả về code JSX ở trên, sau đó được biên dịch thành code cho hàm React bằng Babel. Bằng ReactDOM.render, chúng ta kết xuất thành phần bên trong phần tử div main trong HTML.

Lưu các thay đổi ở trên và thử truy cập index.html trên trình duyệt, và bạn sẽ có thể thấy thông điệp Welcome to TutsPlus trong trình duyệt.

Truyền các Thuộc tính vào các Thành phần

Phần lớn, nó yêu cầu phải truyền dữ liệu vào các thành phần của chúng ta mà sẽ được đánh giá hoặc sửa đổi và sau đó kết xuất. Hãy cùng xem cách làm thế nào để chúng ta có thể truyền các thuộc tính vào các thành phần của chúng ta và hiển thị dữ liệu.

Giả sử chúng ta muốn truyền một cái tên name vào thành phần Message và hiển thị tên trong thông điệp của chúng ta. Trước tiên, chúng ta sẽ thêm một thuộc tính tùy biến vào thành phần của chúng ta.

ReactDOM.render(<Message name="Roy" />,document.getElementById('main'));

Thuộc tính đã được truyền có thể được đọc từ bên trong hàm render của thành phần này bằng cách sử dụng this.props trên khoá thành phần. Hãy chỉnh sửa code như minh hoạ đây:

var Message = React.createClass({
	render:function(){
		return <h1>Welcome to TutsPlus, {this.props.name}</h1>
	}
});

Lưu các thay đổi ở trên và truy cập index.html và bạn sẽ có thể thấy thông báo.

Welcome to TutsPlus, Roy

Tạo một Thành phần React Google Map bằng JSX

Bây giờ chúng ta đã được làm quen với JSX và tạo ra các thành phần React bằng JSX, hãy thử tạo một thành phần React để hiển thị Google Maps.

Bắt đầu bằng cách thêm tham chiếu đến Google Maps API trong index.html.

<script src="//maps.googleapis.com/maps/api/js?v=3.exp"></script>

Tạo một thành phần MyMap như ở dưới đây:

var MyMap = React.createClass({
    render: function() {
        return (
            <div id="map"><span></span></div>
        );
    }
});

ReactDOM.render(<MyMap />,document.getElementById('main'));

Thêm một phương thức được gọi là componentDidMount trong thành phần React, và bên trong phương thức đó hãy định nghĩa các biến liên quan đến bản đồ như sau:

var MyMap = React.createClass({

    componentDidMount: function() {

      var latLong = new google.maps.LatLng(-47.888723, 444.675360);

      var options = {
              zoom: 2,
              center: latLong
          },
          map = new google.maps.Map(ReactDOM.findDOMNode(this), options),
          marker = new google.maps.Marker({
          map:map,
          animation: google.maps.Animation.BOUNCE,
          position: latLong
      });
    },

    render: function() {
        return (
            <div id="map"><span></span></div>
        );
    }
});

Phương thức componentDidMount được gọi ngay sau quá trình kết xuất ban đầu, và tất cả các đối tượng bản đồ được khởi tạo bên trong phương thức này. ReactDOM.findDOMNode tìm một tham chiếu đến nút DOM của thành phần và tạo đối tượng bản đồ. marker được định nghĩa để thiết lập các thuộc tính đánh dấu như map, position và animation.

Thử kết xuất thành phần map bên trong div #main.

ReactDOM.render(<MyMap />,document.getElementById('main'));

Lưu các thay đổi ở trên và thử truy cập index.html, và bạn sẽ có thể xem Google Maps đang hoạt động

Phần Tóm tắt

Trong hướng dẫn này, chúng ta đã được giới thiệu cơ bản về React và JSX. Chúng ta đã được tìm hiểu cách tạo các thành phần React bằng JSX và đồng thời tạo ra một Thành phần React Google Map. Trong các hướng dẫn sắp tới, chúng ta sẽ tập trung vào một số tính năng khác của React.

Mã nguồn từ hướng dẫn này có sẵn trên GitHub.

Bạn đã thử tạo một thành phần React chưa? Tôi rất vui được nghe về những kinh nghiệm của bạn. Hãy cho tôi biết những suy nghĩ của bạn trong phần bình luận bên dưới nhé.

Demon Warlock

Demon Warlock

Tôi được sinh ra ở Việt Nam, nhưng hiện tại đang sống và làm việc tại Mỹ. Ngành tôi học không có liên quan gì đến thiết kế web. Nhưng đây là sở thích từ ngày còn là sinh viên du học, do vậy bây giờ dù cho đang đi làm nhưng tôi vẫn thích dùng thời gian rảnh rỗi của mình để học về thiết kế web. Như các bạn, tôi cũng việc mày mò tự học và khám phá.

Related Posts

Cách Xử lý Định tuyến trong React
React

Cách Xử lý Định tuyến trong React

2 Tháng Ba, 2022
Khóa học cấp tốc React cho người mới bắt đầu, phần 3
React

Khóa học cấp tốc React cho người mới bắt đầu, phần 3

2 Tháng Ba, 2022
Xây dựng một ứng dụng React với Laravel: Phần 2, React
React

Xây dựng một ứng dụng React với Laravel: Phần 2, React

2 Tháng Ba, 2022
Các thành phần chức năng phi trạng thái vs có trạng thái trong React
React

Các thành phần chức năng phi trạng thái vs có trạng thái trong React

2 Tháng Ba, 2022
Next Post
Xây dựng một CMS: goPress

Xây dựng một CMS: goPress

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Recommended.

Action và Filter trong WordPress: Khác nhau như thế nào?

Action và Filter trong WordPress: Khác nhau như thế nào?

1 Tháng Ba, 2022
Template Động trong WordPress, Phần 2

Template Động trong WordPress, Phần 2

1 Tháng Ba, 2022

Trending.

Tải Phần Mềm Adobe Premiere Pro CC 2020 – Hướng Dẫn Cài Đặt Chi Tiết

Tải Phần Mềm Adobe Premiere Pro CC 2020 – Hướng Dẫn Cài Đặt Chi Tiết

28 Tháng Sáu, 2022
Tải Phần Mềm Adobe Photoshop CC 2019 – Link Full Hướng Dẫn Cài Đặt Chi Tiết

Tải Phần Mềm Adobe Photoshop CC 2019 – Link Full Hướng Dẫn Cài Đặt Chi Tiết

2 Tháng Bảy, 2022
IZWEBZ – Blog học lập trình, thiết kế web cơ bản & chuyên sâu

Izwebz được lập trình và thiết kế từ đầu bởi Izwebz Team. Tôi cũng rất tự hào vì được cung cấp bởi WordPress, một CMS được viết rất tốt và đẹp mắt.

Follow Us

Fanpage

Izwebz - Thiết Kế Website Theo Chuẩn

Viết bài cho izwebz

Trang web vẫn đang trong quá trình phát triển về nội dung. Do vậy nếu bạn có khả năng hãy đóng góp bài viết hoặc bạn có thể quảng cáo trang web đến những người mà bạn biết. Được vậy tôi sẽ rất biết ơn bạn.

Recent News

Tải Phần Mềm Adobe Photoshop CC 2019 – Link Full Hướng Dẫn Cài Đặt Chi Tiết

Tải Phần Mềm Adobe Photoshop CC 2019 – Link Full Hướng Dẫn Cài Đặt Chi Tiết

2 Tháng Bảy, 2022
Tải Phần Mềm Adobe Premiere Pro CC 2020 – Hướng Dẫn Cài Đặt Chi Tiết

Tải Phần Mềm Adobe Premiere Pro CC 2020 – Hướng Dẫn Cài Đặt Chi Tiết

28 Tháng Sáu, 2022
  • Tác giả
  • Bản quyền
  • FAQs
  • Liên hệ

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.

No Result
View All Result
  • Home
  • Review
  • Apple
  • Applications
  • Computers
  • Gaming
  • Gear
    • Audio
    • Camera
    • Smartphone
  • Microsoft
  • Photography
  • Security

© 2022 JNews - Premium WordPress news & magazine theme by Jegtheme.