Frontend developement: UX > Framework

Huong Doan

January 1, 2026

Tuần trước, một lỗ hổng bảo mật 10/10 trong Next.js khiến cả tất cả đội dự án phải cập nhật bản vá. CVE-2025-66478 — React2Shell – Lỗi nghiêm trọng nhất từng được phát hiện. Nó cho phép tấn công và thực thi mã độc từ xa cho tất cả các dự án sử dụng React Server Components, điều mà là mặc định ở trong NextJS. Server của các dự án đã xác nhận là có dính virus, và việc này cũng đã được thông báo cho tất cả các khách hàng để cho cả đội có thể cập nhật bản ván một cách nhanh chóng.

Nhưng điều đáng suy nghĩ không phải là lỗ hổng bảo mật này. Câu hỏi đặt ra ở đây là tại sao các đội phát triển lại phụ thuộc vào React (NextJS) nhiều đến như vậy?

React vẫn là vua

Mô hình tư duy đơn giản. Component, state, props — chỉ cần hiểu ba thứ đó là có thể bắt đầu. So với Angular với đống decorators, modules, dependency injection thì React thân thiện hơn nhiều với người mới. Và vì React chỉ là thư viện nhỏ, không phải là cả bộ framework đầy đủ, nên lập trình viên có quyền tự do cấu trúc dự án theo cách họ muốn. Đó là lý do tại sao React lại trở nên phổ biến như vậy trong suốt những năm qua.

Nhưng hệ sinh thái đang phình to quá mức

Vấn đề là bây giờ gần như không ai dùng React thuần nữa. Muốn tối ưu cho công cụ tìm kiếm? Phải dùng NextJS để tối ưu cho SEO. NextJS bây giờ cho phép viết cả phần code backend luôn trong cùng một dự án. Server Components, Backend, Edge Functions — nghe thì hay, nhưng thực tế đa số các dự án chỉ dùng khoảng 10% những gì NextJS cung cấp. Nhiều đội chọn NextJS ban đầu chỉ vì việc tối ưu cho SEO. Không hơn không kém.

Nhưng hệ sinh thái cứ phình ra, phức tạp hơn, và càng ngày càng xa rời mục đích ban đầu. Chạy chậm hơn, debug khó hơn. Và như vụ lỗ hổng vừa rồi cho thấy — rủi ro bảo mật cũng tăng theo. Bây giờ có nhiều lựa chọn khác có thể làm điều tương tự như: TanStack Start, SolidStart, SvelteKit. Svelte đáng chú ý vì cú pháp tự nhiên, gần với HTML/CSS/JavaScript thuần nhất.

Giao diện không phải là chọn framework

Đây mới là cần phải bàn. Nhiều lập trình viên, đặc biệt là các bạn mới vào nghề, bị cuốn vào câu hỏi “Nên học React hay Vue?” như thể đó là quyết định quan trọng nhất trong sự nghiệp. Không phải vậy.

Khi chọn framework cho một dự án, không nên chọn dựa trên sở thích cá nhân. Thay vào đó, cần nhìn vào:

  • Giao diện và thư viện components có sẵn không? Dự án cần hoàn thành nhanh thì đây là yếu tố quan trọng.
  • Độ phổ biến và tỷ lệ áp dụng? Tìm người để duy trì sau này có khó không?
  • Khung này giải quyết vấn đề kinh doanh cụ thể như thế nào? Tối ưu tìm kiếm quan trọng thì cần SSR. Ứng dụng nội bộ thì SPA.

React phổ biến, dễ tìm người. Svelte viết code tự nhiên. Mỗi framework có điểm mạnh riêng — quan trọng là không gắn bản thân vào bất kỳ framework nào.

Điều thực sự quan trọng: người dùng

Phần backend nó là cỗ máy ẩn sau bên dưới. Người dùng không biết và không quan tâm bạn viết backend bằng cái gì. Nhưng giao diện thì khác. Giao diện là thứ người dùng nhìn thấy, chạm vào, và đánh giá mỗi ngày.

Có những trang web với biểu mẫu dài 3-4 bước, bắt người dùng nhập đủ thứ thông tin trước khi được tiếp tục. Đa số người dùng sẽ tắt ngay. UX tệ nghĩa là mất người dùng. Đơn giản vậy thôi. Khi xây dựng một sản phẩm, câu hỏi cần đặt ra là: “Bản thân có muốn dùng cái này không?” Nếu câu trả lời là không, thì dù code có sạch đến đâu, dù dùng framework xịn đến mấy, thì đó vẫn là thất bại.

Lời khuyên cho anh em dev frontend

Nếu bạn đang ở tầm Middle trở xuống, tập trung vào một framework vẫn là ổn. Hiểu sâu một thứ tốt hơn là biết lơ mơ nhiều thứ. Nhưng khi có thời gian, hãy thử khám phá các ngách kiến thức khác. Không phải để chuyển đổi, mà để mở rộng góc nhìn. Để khi cần, bạn biết công cụ nào phù hợp với vấn đề nào.

Và quan trọng nhất — đừng quên rằng giao diện cuối cùng là về UX. Framework sẽ thay đổi. Xu hướng sẽ đến rồi đi. Nhưng một sản phẩm mà người dùng thích sử dụng — đó mới là thứ tồn tại lâu dài.

WRITE A COMMENT

Vitex Vitex Vietnam Software., JSC

Service Request Form

Send us your service request and we will get back to you instantly

1 Contact Infomation
  • Name
  • Email
  • Phone
  • Company
  • Address
  • Skype/Telegram
2 Service Request
Website
Mobile Application
Website Application
Other
  • Start time
    icon time
  • End time
    icon time
  • What is your budget range?
    icon time
    Currency USD
  • Front-end
    Ex. React, VueS...
  • Back-end
    Ex. PHP, Java, Python...
  • Database
    Ex. MySQL, Mongo...
  • Advanced technologies
    Ex. Blockchain, AI...
yes
no
  • Select role
    icon time
  • Quantity
    icon time
  • Duration
    icon time
remove

Request Form Successfully !

We'll contact you in the earliest time.