Introduce about React

Introduction

React là 1 thư viện JavaScript do Facebook and Instagram cùng phát triển. Nhiều người đã chọn React như là V ở trong mô hình MVC. Rất nhiều nhà phát triển đã xây dựng React to để giải quyết vấn đề: xây dựng các applications lớn với dữ liệu mà thay đổi theo thời gian.

Tuy nhiên trong bài viết này ,tôi không đi sâu vào các tính năng của React, mà đưa ra phạm vi ứng dụng của nó trong các applications.

React is ONLY THE VIEW LAYER.

Ngay trong phần giới thiệu ,tôi đã nhấn mạnh React đc chọn dùng nhiều trong tầng View layer trong mô hình MVC .

React cung cấp cho bạn các template languges và một số chức năng cơ bản để render HTML. Tất cả output của React đều là HTML được gọi là "component", được cho phép làm những việc như lưu trữ innternal state bên trong nhớ (như tab được chọn trong một lần xem tab), nhưng cuối cùng bạn chỉ show ra HTML.

Good Point of React

  1. Bạn có thể build tất cả component trên 1 source file.Đây là lợi ích khá là quan trọng của React mặc dù nó ko có nhiều khác biệt so với AngularJS . Ví dụ cụ thể nếu bạn thực hiện việc update header với the user's name sau khi log in. Khi bạn ko sử dụng bất kì 1 framework JS nào ,thì bạn sẽ phải làm như sau :
    <header>
        <div class="name">
            Not Logged In
        </div>
    </header>
    $.post('/login', credentials, function( user ) {
        // Modify the DOM here
        $('header .name').text( user.name );
    });
Còn đây là cách mà React giúp bạn sử lí :
    render: function() {
        return <header>
            { this.state.name ?
                this.state.name :
                <span>Not Logged In</span> }
        </header>;
    }
  1. Đóng gói các Javascript and HTML thành 1 file JSX giúp components được hiểu 1 cách dễ dàng hơn

    Sự kết hợp của HTML / Javascript trên có thể làm cho bạn cảm thấy phức tạp tuy nhiên làm việc với các thành phần JSX là thực sự tốt đẹp.

    Theo truyền thống, bạn tách views (HTML) từ chức năng (Javascript). Điều này dẫn đến khối file Javascript chứa tất cả các chức năng cho một "trang", và bạn phải theo dõi dòng chảy phức tạp từ JS> HTML> JS> bad-news-sad-time.

  2. Thực hiện việc render React ở trên server.

    Nếu bạn đang xây dựng một trang web hoặc 1 ứng dụng và bạn đang đi theo con đường render-it-all-on-the-client, bạn đã làm sai. Client-only rendering là lý do tại sao mà Soundcloud thấy quá chậm vào tại sao hệ thống Stack Overflow (với mô hình server side rendering) thấy là quá nhanh. Vậy nếu có thể,bạn nên thực hiện việc render trên serverside trong các ứng dụng của mình .

Bad Point of React

Vì React chỉ làm việc tốt ở tầng View layer nên nó ko có nhiều chức nắng giúp sử lí back-end như các framework khác như:

  • Sử lý các event system
  • Sử lý các AJAX call
  • Sử lý form data
  • Sử lý Promises

Vậy có nên dùng React?

Câu trả lời cho mọi trường hợp,đó là nên sử dụng React trong các ứng dụng mà bạn viết.Lý do :

  • Giúp bạn làm việc theo cấu trúc
  • Dễ dàng trong việc đọc và maintain

Tài liệu tham khảo về React :

  1. https://facebook.github.io/react/docs/tutorial.html
  2. https://facebook.github.io/react/docs/why-react.html