26/12/2022
React là gì?
React có còn được ưu chuộng không?
React là một thư viện JavaScript được sử dụng để xây dựng giao diện người dùng trên các ứng dụng web. Nếu bạn đang lập trình giao diện người dùng, bạn đã có một kiến thức cơ bản về HTML, CSS và JavaScript và muốn nâng cao kỹ năng lập trình web của mình, học ReactJS có thể là một lựa chọn tốt cho bạn. Nó cũng có thể là một lựa chọn tốt cho những người muốn bắt đầu xây dựng các ứng dụng web phức tạp hơn và muốn sử dụng các công cụ và thư viện hỗ trợ như Redux và GraphQL.
React (Hay ReactJS, React.js) lần đầu tiên được triển khai cho ứng dụng Newsfeed của Facebook năm 2011, sau đó được triển khai cho Instagram.com năm 2012. Nó được mở mã nguồn (open-sourced) tại JSConf US tháng 5 năm 2013. Cho đến hiện nay đã hơn 10 năm nhưng nó vẫn còn được ưu chuộng với rất nhiều ưu điểm nổi trội và được cập nhật thường xuyên bởi một cộng đồng lập trình viên lớn.
React được ưa chuộng bởi nhiều lý do, trong đó có vài điều sau đây:
- Cung cấp một cách dễ dàng để xây dựng các phần tử giao diện người dùng riêng biệt và tái sử dụng chúng.
- Hỗ trợ việc tích hợp với các thư viện và công cụ khác nhau như Redux và GraphQL để xây dựng các ứng dụng web phức tạp hơn.
- Cung cấp một tính năng gọi là "state" để quản lý các trạng thái của các phần tử giao diện người dùng. Tính năng này cho phép các lập trình viên quản lý các trạng thái của các phần tử giao diện người dùng. Các trạng thái này có thể bao gồm các giá trị như dữ liệu người dùng nhập vào, trạng thái của các nút bấm và các trạng thái khác của các phần tử giao diện người dùng. Khi một trạng thái thay đổi, React sẽ tự động cập nhật giao diện người dùng tương ứng.
- Hỗ trợ sự tương tác giữa các phần tử giao diện người dùng và các sự kiện người dùng. Điều này cho phép các lập trình viên xây dựng các ứng dụng web đáng tin cậy và thân thiện với người dùng.
Vì các lý do trên, React đã trở thành một trong những thư viện JavaScript phổ biến nhất hiện nay và được sử dụng trong rất nhiều ứng dụng web lớn, bao gồm Facebook, Instagram và nhiều ứng dụng khác như Netflix, Airbnb, Dropbox, Asana,...
Nếu bạn đang băn khoăn có nên học Reactjs không thì sau đây sẽ là một vài gợi ý cho bạn. Bạn có thể muốn học ReactJS nếu bạn:
- Muốn xây dựng các ứng dụng web đáng tin cậy và dễ dàng quản lý.
- Muốn tạo ra các giao diện người dùng đáng tin cậy và thân thiện với người dùng.
- Muốn sử dụng các khối HTML, CSS và JavaScript để xây dựng các phần tử giao diện người dùng riêng biệt.
- Muốn sử dụng các tính năng như "state" và sự tương tác giữa các phần tử giao diện người dùng và các sự kiện người dùng để xây dựng các ứng dụng web phức tạp hơn.
- Muốn sử dụng React để xây dựng các ứng dụng web cho các thiết bị di động, nhờ các tính năng như "server-side rendering" và "code splitting" của React.
- Muốn sử dụng React để xây dựng các trang web có nội dung thay đổi thường xuyên, như các trang tin tức hoặc các trang web có nhiều dữ liệu động.
- Muốn sử dụng React để xây dựng các trang web có nhiều phần tử giao diện người dùng khác nhau và có thể tái sử dụng, nhờ cơ chế "component-based architecture" của React.
- Muốn sử dụng React để xây dựng các ứng dụng web phức tạp hơn và muốn sử dụng các công cụ và thư viện hỗ trợ như Redux và GraphQL như mình đã nói phía trên.
Tuy nhiên, học React cũng yêu cầu bạn có một số kiến thức cơ bản về lập trình JavaScript và cách thức hoạt động của các ứng dụng web. Nếu bạn chưa có kiến thức này, học React có thể khó khăn hơn và bạn có thể phải tìm hiểu thêm về lập trình JavaScript trước khi bắt đầu học React.
Một số nơi để tìm hiểu về HTML, CSS, JavaScript cần thiết để có thể bắt đầu học React như:
- https://www.w3schools.com/ (html/css/js)
- Các kênh Youtube: F8, howkteam, Nodemy
- anime.js , Chart.js, Choreographer-js, Cleave.js, D3.js , Glimmer, freeCodeCamp.org , CodeMentor , Mozilla Developer Network , Dev Docs , jsCoursera, JavaScript.info
Một số nơi để tìm hiểu về Reactjs như:
- Website: https://reactjs.org/ , https://reactjsexample.com/ , https://create-react-app.dev/
- Các kênh Youtube: evondev , esy frontend , Daniel Truong Dev , JavaScript Mastery , FrontendNguyento