Trang admin nên làm router SPA hay MVC?

Chào các bác ạ :smiley:

Em đang tính làm 1 trang CMS làm sẵn để có thể phục vụ tốt cho các đồ án về sau ( kiểu chỉ cần copy paste vào sườn admin được xây dựng sẵn đó ). Mà em không biết có nên làm Web MVC hay nên làm WebAPI @@.

Em tham khảo một số trang admin demo thì đa số là làm bằng MVC và chỉ vài phần nhỏ xài AJAX và ít khi thấy trang nào xài router, jwt hay js framework như Vue, Angular.

Cảm ơn các bác tư vấn giúp em ạ :smiley:

Những thứ mà bạn đề cập, chúng nó thuộc những phạm trù rất khác nhau, bạn hỏi thế này thì rất khó cho mọi người.
Ai có đủ kiên nhẫn để giảng cho bạn này hiểu tất cả những thứ đó không.

1 Like

không phải bác ạ @@ em chỉ tính hỏi là xây trang admin đa phần các công ty thường làm dạng website MVC thuần hay kiểu SPA có kết hợp với 1 framework js ạ @@ ( vì sợ sau này nó mở rộng nhiều thứ sẽ khó khăn trong việc mở rộng … )
Em có 1 trang admin demo code bằng laravel + angularjs nhưng hầu như em thấy đa phần là làm thuần laravel ạ @@
https://minhquanlarangularjs.herokuapp.com/

MVC thì liên quan gì đến SPA??
tất cả những thứ mà bạn nêu, phạm trù khác nhau và không xung khắc nhau, bạn xài kiểu gì cũng được.

1 Like

tại vì nó không liên quan nên em cũng băn khoăn nên build trang admin theo dạng nào để sau này có thể mở rộng sau này tốt hơn ạ @@

Template engine: 2 hướng (ko loại trừ nhau):
Resolve template ngay từ server (PHP hoặc các thư viện bổ sung, Razor của ASP.NET, v.v);
Resolve template ở dưới client (Angular, React, Vue, v.v)

MVC: ở đâu cũng được, MVC là 1 đường lối phân chia code (Giao diện, dữ liệu và điều khiển)

SPA: ngày xưa người ta hay làm web kiểu việc gửi nhận dữ liệu là phải load lại cả web (cho nên hay dùng template engine ở server), giờ muốn làm cho trang web giống app thông thường trong hđh, client và server có thể trao đổi dữ liệu mà không nhất thiết request lại cả trang (nhóm công nghệ ajax, webapi, websocket, v.v.)

Router trên server: đơn giản chỉ là pattern matching lên chuỗi url của request để chạy event tương ứng trên server để trả response tương ứng.

Router dưới client: cũng gần như thế, nhưng url có thể thay đổi mà không khiến load lại cả trang, mà thay vào đó là chạy event tương ứng (tự thay đổi giao diện, gọi tiếp api lên server, v.v)

JWT: đây là 1 chuẩn để trao đổi dữ liệu qua lại một cách an toàn và bảo mật (ứng dụng vào: authorized token, truyền dữ liệu nhạy cảm, v.v)

2 Likes

Cảm ơn bác ạ :sweat_smile: có lẽ các khái niệm trên em đã nắm qua rồi ạ :blush: chắc em nghĩ nên tự quyết định làm theo cách mình luôn rồi tự đưa ra câu trả lời luôn ạ :smile: cảm ơn bác. :sunny: em hỏi nhiều khi đọc lại cũng thấy mình hỏi mơ hồ thật :smile:

Chắc là do SPA xuất hiện sau nên ít demo hơn thôi.
Bạn thích làm bằng gì thì làm.
Mình cũng vừa nhận một dự án làm trang admin = Laravel + Vue đây.

1 Like

Cảm ơn bác ạ :smiley: em Laravel + Vue thấy xài ngon kinh @@ hỗ trợ tận răng

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?