Tìm hiểu cách hoạt động của các framework JavaScript hiện đại
- Tự tạo framework JavaScript của riêng mình sẽ hữu ích cho việc học.
- "Framework JavaScript hiện đại" ở đây ám chỉ các framework xuất hiện sau React.
- Các framework này lấy cảm hứng từ React, nhưng đã tiến hóa theo những hướng khá tương đồng.
Đặc điểm của framework hiện đại
- Sử dụng tính phản ứng (reactivity) để cập nhật DOM.
- Sử dụng sao chép mẫu (cloning templates) để render DOM.
- Dùng các Web API hiện đại như
<template>vàProxy.
Tính phản ứng (Reactivity)
- React thường được nhắc đến là không mang tính phản ứng.
- Các framework hiện đại ưu tiên hiệu năng bằng mô hình phản ứng dựa trên cơ chế push.
- Dùng
Proxyđể triển khai việc cập nhật DOM mỗi khi trạng thái thay đổi.
Sao chép cây DOM (Cloning DOM trees)
- Dùng thẻ
<template>để phân tích HTML một lần rồi sao chép nhanh toàn bộ là một kỹ thuật hiệu quả. - Cách này đang được nhiều framework JavaScript sử dụng.
API JavaScript hiện đại
<template>vàProxylà những API giúp xây dựng hệ thống phản ứng.- Dùng tagged template literals để đơn giản hóa API mẫu HTML.
Các bước xây dựng tính phản ứng
- Tính phản ứng, tức quản lý trạng thái và định nghĩa việc cập nhật DOM khi trạng thái thay đổi, là nền tảng của framework.
- Dùng
Proxyđể phát hiện thay đổi trạng thái và quản lý cập nhật hiệu quả quaqueueMicrotask.
Giai đoạn render DOM
- Sử dụng hàm
htmlđể xây dựng cây DOM và cập nhật nó một cách hiệu quả. - Viết mẫu HTML bằng tagged template literals và tối ưu hóa việc phân tích HTML bằng
WeakMap.
Kết hợp tính phản ứng và render DOM
- Dùng
createEffectđể cập nhật DOM theo trạng thái. - Triển khai để văn bản tự động được cập nhật khi trạng thái thay đổi.
Bước tiếp theo
- Có nhiều cách để cải thiện hệ thống render DOM.
- Mục tiêu là chỉ phân tích template một lần, chỉ thiết lập binding một lần và giảm thiểu cập nhật.
Ý kiến của GN⁺
Điểm quan trọng nhất của bài viết này là hiểu được các khái niệm cốt lõi và cách triển khai của framework JavaScript hiện đại, đồng thời học thông qua trải nghiệm thực sự tự tay xây dựng framework của riêng mình. Cách tiếp cận này có thể mang lại một trải nghiệm học tập thú vị và hữu ích cho các kỹ sư phần mềm mới bắt đầu, khi giúp họ hiểu cơ chế vận hành bên trong của framework và có cơ hội áp dụng thực tế.
1 bình luận
Ý kiến trên Hacker News
Đề xuất các tài liệu sau để có hiểu biết cơ bản về chủ đề đang quan tâm:
Giải thích về những hiểu lầm quanh React và cách nó thực sự hoạt động:
useMemokhông ngăn re-render;React.memomới đảm nhiệm vai trò đó.Đánh giá tích cực về Svelte và các trường hợp sử dụng:
Nhiều góc nhìn khác nhau về các framework phản ứng:
Câu hỏi và thảo luận về tính phản ứng của React:
Câu hỏi đặt ra cho những người có nhiều kinh nghiệm với framework frontend: