Có gì hot? Tuần 17 - 2023

Viết bởi @kcjpop

Đăng ngày

Dài 722 từ. Đọc trong 4 phút.

"Bản tin Ehkoo tuần 17 năm 2023"

Tuần này học gì: window.location.reload() và đồng bọn

Lại một tuần im ắng nên phải có thêm mục này cho bản tin dài ra 🙃

Phương thức window.location.reload() chắc đã rất quen thuộc với mọi người rồi đúng không? Dùng để tải lại trang hiện tại, giống như người dùng nhấn nút Refresh vậy. Phương thức này không nhận vào tham số nào hết, nhưng thử tìm kiếm trên Github bạn sẽ thấy có rất nhiều chỗ gọi window.location.reload(true).

Hóa ra trước đây Firefox có hỗ trợ window.location.reload(forceGet : boolean) để ép trang bỏ qua bộ đệm và tải lại trang. Tham số này không được quy định trong bất cứ tiêu chuẩn (standards) nào hết, và là hàng tự chế của Firefox. Các trình duyệt khác hoàn toàn bỏ qua tham số này. Do đó bạn cứ gọi window.location.reload() là được rồi.

Bên cạnh .reload(), chúng ta còn có window.location.assign(url)window.location.replace(url). Cả hai phương thức này đều dùng để chuyển trang sang url mới, chỉ khác ở chỗ .replace() sẽ thay thế URL hiện tại trong History của trình duyệt. Tức là:

history = [page-1, page-2]

location.assign(page-3) → history = [page-1, page-2, page-3]
location.replace(page-3) → history = [page-1, page-3]

Nếu người dùng nhấn nút Back, tùy thuộc vào bạn sử dụng .assign() hay .replace() mà trình duyệt sẽ quay về page-2 hay page-1 tương ứng.

Tin vắn

  • Nhóm phát triển Angular vừa thông báo sẽ hỗ trợ Jest từ v16 và Web Test Runner trong những phiên bản sau nữa. Trước đây thì các dự án Angular hay xài Karma của Google.

  • Phiên bản Chrome 113 sắp tới sẽ cho phép bạn ghi đè (overrride) headers của network response. Giờ đây bạn chỉ cần mở devtool - Network - Headers - Response Headers, sau đó click vào biểu tượng Edit là có thể thêm vào CORS, Permissions-Policy, hay bất cứ header nào tùy ý. Ngoài ra phiên bản này còn có những tính năng khác mà bạn có thể đọc thêm ở đây.

  • The Verge đăng bài cho biết với tính năng Follow creator, Microsoft Edge sẽ gửi bất cứ URL nào bạn truy cập đến bingapis.com. Nghe cũng hơi mệt đó. Nếu bạn quan tâm đến quyền riêng tư thì (1) tắt tính năng này (2) nghỉ xài Edge cho lành.

  • Cũng liên quan tới Microsoft nhưng The Register vừa cho biết một vài phần lõi của Windows 11 đang được chuyển từ C++ qua Rust 🦀

Mới thấy trên quầy

Một vài thư viện/ công cụ hữu ích mà bọn mình mới phát hiện 😛

  • TanStack/form: Họ nhà Tanstack lại đón chào thành viên mới. Thư viện này giúp bạn xử lý form và hỗ trợ hầu hết các framework. Hiện tại vẫn đang âm thầm phát triển.

  • observablehq/plot: là một thư viện mã nguồn mở để biểu diễn dữ liệu dạng bảng. Plot không hẳn tập trung vào vẽ biểu đồ mà giúp bạn khám phá và hình dung dữ liệu nhanh nhất, chỉ với vài dòng code. Plot được phát triển từ D3, và có thể tích hợp vào React/ Vue.

  • mishamyrt/Lilex: Lilex là một font lập trình được phát triển dựa trên IBM Plex Mono, hỗ trợ ligatures.

Đọc/ xem gì cuối tuần

  • Scoped CSS is back: Keith J. Grant điểm sơ qua tính năng @scope của CSS, giúp bạn giới hạn các rules trong một selector nhất định. Bạn có thể thử qua tính năng này trong Chrome sau khi bật Experimental Web Platform Featureschrome://flags/. Tạm biệt BEM, CSS-in-JS hay CSS modules 👋

  • Hiding empty elements with CSS :empty and :has(): Thay vì dùng class .open / .close, Tobias Ahlin giới thiệu một kỹ thuật mới để ẩn/ hiện nội dung trên web bằng :empty:has().

  • Inconsistent JavaScript imports can lead to duplicate code: Một kinh nghiệm nhỏ khi import module với các dự án dùng Webpack để tránh code bị bundle nhiều lần.

  • Is Critical Thinking the Most Important Skill for Software Engineers?: Gergely Orosz khuyến khích lập trình viên nên phát triển kỹ năng tư duy phản biện, để có thể tự xây dựng ý kiến riêng thay vì cứ nghe theo các “cây đa cây đề” hay nhân vật nổi tiếng trong ngành.

  • A Gentle Introduction to Islands: Một bài tổng quan về kiến trúc đảo trong Fresh, hay còn gọi là Đảo khủng long.

Kết

Hẹn gặp lại các bạn trong tuần tiếp theo 👋

Bản tin Ehkoo hàng tuần 💌

Đăng ký ngay để nhận những tin và bài viết mới nhất về lập trình frontend, cũng như các thủ thuật hay thư viện mới…

Powered by Buttondown

Gửi tặng cà phê ☕️

Nếu thấy bài viết này hữu ích, bạn có thể gửi tặng Ehkoo một ly cà phê theo link bên dưới 👇

Cám ơn bạn rất nhiều 🤗