Chào các bạn! Hôm nay, mình muốn chia sẻ với các bạn về hành trình chuyển đổi của mình từ React sang Angular trong các dự án cá nhân và công việc. Mình đã dành nhiều năm làm việc với React, nhưng gần đây, mình đã quyết định chuyển hướng sang Angular.
Mình biết rằng một số bạn coi React là một thư viện chứ không phải là một framework. Điều đó có lẽ chính xác hơn, nhưng trong bài viết này mình vẫn sẽ gọi nó là một framework bởi vì khi mình nói “React”, mình đang ám chỉ toàn bộ hệ sinh thái của nó chứ không chỉ riêng thư viện React.
1. Hành Trình Với React
Mình bắt đầu sử dụng React vào khoảng năm 2018 trong công việc, và từ đó, nó trở thành lựa chọn tự nhiên cho các dự án cá nhân của mình. Mình cũng đã thử nghiệm với Vue và một số framework khác, nhưng cuối cùng, mình luôn quay trở lại với React.
2. Bước Ngoặt: Công Việc Mới
Năm ngoái, mình bắt đầu công việc mới với vai trò frontend dev, mình được yêu cầu sử dụng Angular thay vì React. Điều này đã mở ra cơ hội để mình trải nghiệm một framework khác một cách sâu sắc hơn.
🔍 Angular Phù Hợp Với Backend Developer? Angular đòi hỏi bạn phải suy nghĩ nhiều hơn như một backend developer, với lối tiếp cận hướng đối tượng, sử dụng các class, service, component và module. Điều này tạo ra sự khác biệt lớn so với React hay Vue.
3. Lý Do Chuyển Sang Angular
Sau hơn một năm làm việc chuyên nghiệp với Angular, mình nhận ra React không thể so sánh với Angular ở một số khía cạnh:
3.1. Services Trong Angular
Services trong Angular là cách chính để xử lý dữ liệu, chúng đơn giản, trực quan và dễ kiểm thử. Mỗi service trong Angular được coi là một singleton, giúp dữ liệu được lưu trữ xuyên suốt phiên làm việc của người dùng.
3.2. Đồ nghề đầy đủ
Angular cung cấp hầu hết những gì bạn cần ngay khi bắt đầu, từ việc xử lý yêu cầu đến routing và quản lý trạng thái. Điều này giúp ích rất nhiều trong việc đảm bảo tính tương thích và tiết kiệm thời gian khi cập nhật.
3.3. Tổ Chức Dự Án
Angular hỗ trợ tốt việc tổ chức dự án, nhất là với các dự án lớn có nhiều developer. Cách tiếp cận hướng đối tượng và công cụ CLI của Angular giúp tạo ra một cấu trúc nhất quán cho dự án.
4. Binding Hai Chiều
Binding hai chiều trong Angular là một tính năng mạnh mẽ, giúp đồng bộ hóa dữ liệu giữa view và model một cách tự nhiên và hiệu quả.
5. Server-Side Rendering
Angular hỗ trợ server-side rendering ngay từ đầu, không cần thêm framework phụ trợ. Điều này làm cho việc thiết lập và cấu hình trở nên dễ dàng hơn nhiều.
6. Sự Kết Hợp Hoàn Hảo: Angular và RxJS
Sẽ thật thiếu sót khi nói tới Angular mà không đề cập tới RxJS.
6.1. Cuộc Chiến Ban Đầu Với RxJS
Để mình kể cho các bạn nghe về "cuộc chiến" của mình với RxJS. Ban đầu, RxJS thực sự là một thách thức khổng lồ - nó khù khoằm và phức tạp đến nỗi đôi lúc mình cảm thấy như mình đang cố bắt lấy một cái gì đó không thể nắm bắt được.
😂 Cười Để Quên Đi Sự Phức Tạp
Có những lúc, mình cứ tưởng mình đã hiểu RxJS, nhưng rồi... "Ối giời ơi!" - mình nhận ra mình chưa thể kiểm soát nó. Mình còn nhớ có lần, mình đã tự hỏi, "Mình đang làm cái quái gì vậy trời?" khi cố gắng áp dụng một operator phức tạp nào đó.
6.2. Khi RxJS 'Chinh Phục' Được Mình
Nhưng các bạn ạ, một khi bạn "thấm" được RxJS, bạn sẽ muốn dùng nó mọi lúc, mọi nơi. Sự linh hoạt và mạnh mẽ mà RxJS mang lại cho việc quản lý dữ liệu là không thể phủ nhận.
🔄 RxJS và React: Và không dừng lại ở đó, mình đã từng "vác" RxJS sang React để thử nghiệm.
6.3. Tình Yêu Ghét Cùng Lúc Với RxJS
Dù vậy, mình phải thừa nhận rằng, mặc dù RxJS là một phần quan trọng khiến mình yêu Angular, nó cũng là lý do khiến mình... có chút "ghét" Angular. Thật vô lý, phải không nào? 😅 Sự phức tạp của RxJS khiến nó trở thành một "liều thuốc đắng" mà mình phải học cách nuốt trôi. Nhưng cũng chính sự phức tạp ấy lại làm mình cảm thấy thích thú, giống như một trò chơi (một khi đã ghiềng thì...), mỗi lần giải được là một lần cảm thấy tự hào vô cùng.
Với mình, Angular và RxJS đã mang đến cho mình một trải nghiệm đầy thú vị và thách thức. Đúng là trong mọi sự ghét có yêu, và trong mọi sự yêu có ghét. Angular và RxJS, với mình, chính là minh chứng hoàn hảo cho điều đó. Còn bạn thì sao, bạn có code Angular không? Với bạn RxJS khó hay dễ? Bạn thích hay không thích nó? Comment bên dưới cho mình biết nhé! 💻👩💻
7. Lý Do Tiếp Tục Sử Dụng React
Mặc dù đã chuyển sang Angular, React vẫn có những ưu điểm riêng. Kinh nghiệm sử dụng React của mình cũng là lý do để tiếp tục sử dụng nó trong một số dự án cá nhân.
Kết Luận
Cuối cùng, mình muốn nhấn mạnh rằng, mặc dù tìm thấy nhiều ưu điểm trong Angular, nhưng điều đó không có nghĩa là React kém cạnh. Mỗi framework đều có những điểm mạnh riêng và sự lựa chọn phụ thuộc vào nhu cầu cụ thể của dự án cũng như sở thích cá nhân của mỗi người.
Mình hy vọng bạn thích bài viết này và học thêm được điều gì đó mới.
Donate mình một ly cafe hoặc 1 cây bút bi để mình có thêm động lực cho ra nhiều bài viết hay và chất lượng hơn trong tương lai nhé. À mà nếu bạn có bất kỳ câu hỏi nào thì đừng ngại comment hoặc liên hệ mình qua: Zalo - 0374226770 hoặc Facebook. Mình xin cảm ơn.
Momo: NGUYỄN ANH TUẤN - 0374226770
TPBank: NGUYỄN ANH TUẤN - 0374226770 (hoặc 01681423001)