Cách quét sạch JavaScript khỏi ứng dụng Blazor
Gần đây việc học tốn nhiều thời gian quá, nên là mình không thể dành nhiều thời gian cho Dự án
Hiện thực (Project Reality) và lxmonika
. Tuy nhiên, trong lúc đang xây ứng dụng mạng bằng
Blazor để làm bài tập, mình có một số mẹo để kết hợp .NET với JS (interop) mình muốn chia sẻ!
Điều kiện
Vấn đề
Điều mình thấy khó chịu nhất khi dùng Blazor có lẽ là những lúc cần phải động đến một chút
JavaScript. Trong khi các thành phần HTML, và trong một số trường hợp, CSS (thông qua
Element.style
), có thể được khai báo trực tiếp trong các thành phần (component) của Razor, việc
chạy các mẩu JavaScript không hề đơn giản.
Cách hay dùng nhất
là tạo một tệp riêng cho những đoạn JavaScript và khai báo chúng trong trang chủ App.razor
dưới
dạng các thẻ <script>
. Đoạn JavaScript này cần bổ sung một vài hàm vào miền tên (namespace)
chung để chúng có thể được gọi bằng IJSRuntime.InvokeAsync
.
Việc này rắc rối nhất trong những lúc phải làm một vài điều lặt vặt Blazor không hỗ trợ, kiểu như
bấm một nút
(button.click()
) hay nộp một mẫu <form>
của HTML (form.submit()
). Theo hướng trong "sách giáo
khoa", ta sẽ phải đẻ ra thêm một tệp JavaScript mới, đút thêm một thẻ <script>
, và bôi thêm vài
hàm vào miền tên chung chỉ để thực hiện các thao tác đáng lẽ chỉ cần một dòng.