paint-brush
Các phương pháp hay nhất để phát triển Front-Endtừ tác giả@yantsishko
33,421 lượt đọc
33,421 lượt đọc

Các phương pháp hay nhất để phát triển Front-End

từ tác giả Yan Tsishko6m2022/12/23
Read on Terminal Reader

dài quá đọc không nổi

Phát triển front-end liên quan đến việc tạo ra các khía cạnh trực quan và tương tác của một trang web. Đảm bảo rằng mã của bạn được tối ưu hóa, có thể bảo trì và tuân theo các tiêu chuẩn ngành là điều cần thiết để tạo trải nghiệm người dùng liền mạch. Dưới đây là một số phương pháp hay nhất cần ghi nhớ khi làm việc trên các dự án front-end.
featured image - Các phương pháp hay nhất để phát triển Front-End
Yan Tsishko HackerNoon profile picture

Phát triển giao diện người dùng liên quan đến việc tạo các khía cạnh trực quan và tương tác của trang web hoặc ứng dụng mà người dùng nhìn thấy và tương tác.


Đảm bảo rằng mã giao diện người dùng của bạn được tối ưu hóa, có thể bảo trì và tuân theo các tiêu chuẩn ngành là điều cần thiết để tạo trải nghiệm người dùng liền mạch. Dưới đây là một số phương pháp hay nhất cần ghi nhớ khi làm việc trên các dự án front-end:


  1. Các thẻ HTML ngữ nghĩa : Sử dụng các thẻ HTML ngữ nghĩa giúp cải thiện khả năng truy cập và khả năng đọc mã. Ví dụ: thay vì sử dụng thẻ div để thể hiện tiêu đề, bạn có thể sử dụng thẻ header . Điều này mang lại nhiều ý nghĩa hơn cho nội dung và giúp trình đọc màn hình diễn giải dễ dàng hơn.
 <!-- Not semantic --> <div class="header"> <h1>Welcome to my website</h1> </div> <!-- Semantic --> <header> <h1>Welcome to my website</h1> </header>


  1. Bộ tiền xử lý CSS : Bộ tiền xử lý CSS, chẳng hạn như SASS hoặc LESS, cho phép sử dụng các tính năng và kỹ thuật nâng cao trong CSS không có sẵn trong CSS chuẩn. Ví dụ: bạn có thể sử dụng các biến, mixin và quy tắc lồng nhau để làm cho các kiểu có tổ chức hơn và dễ bảo trì hơn.
 /* Css */ .btn { color: #ffffff; background-color: #000000; font-size: 16px; border-radius: 5px; } /* Sass */ $primary-color: #000000; $secondary-color: #ffffff; $font-size: 16px; $border-radius: 5px; .btn { color: $secondary-color; background-color: $primary-color; font-size: $font-size; border-radius: $border-radius; }


  1. Sử dụng mạng phân phối nội dung (CDN) cho js, CSS và hình ảnh : CDN là mạng máy chủ phân phối nội dung dựa trên vị trí địa lý của người dùng. Sử dụng CDN có thể cải thiện hiệu suất bằng cách giảm khoảng cách giữa người dùng và máy chủ. Ngoài ra, nó cho phép lưu trữ các tập tin.
 <!-- Not using a CDN --> <script src="/scripts/jquery.js"></script> <!-- Using a CDN --> <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js"></script>


  1. Tối ưu hóa hình ảnh và các nội dung khác : Tối ưu hóa hình ảnh và các nội dung khác có thể giúp cải thiện hiệu suất và tốc độ của trang web. Điều này có thể được thực hiện thông qua các kỹ thuật như nén hình ảnh, sử dụng các định dạng tệp hình ảnh phù hợp và tải hình ảnh chậm.
 <img src="compressed-image.jpg" alt="A compressed image" loading="lazy">


  1. Hình ảnh đáp ứng : Hình ảnh đáp ứng là hình ảnh được chia tỷ lệ thích hợp cho các kích thước màn hình và thiết bị khác nhau. Điều này có thể được thực hiện thông qua việc sử dụng sizes thuộc tính srcset và dimensions trên thẻ img .
 <img srcset="image-small.jpg 500w, image-medium.jpg 1000w, image-large.jpg 1500w" sizes="(max-width: 500px) 500px, (max-width: 1000px) 1000px, 1500px" src="image-large.jpg" alt="An image" >


  1. Đồ họa véc tơ : Đồ họa véc tơ là hình ảnh được xác định bởi các điểm và đường dẫn, thay vì pixel và có thể được thu nhỏ theo bất kỳ kích thước nào mà không làm giảm chất lượng. Điều này có thể giúp chúng sử dụng hiệu quả hơn, đặc biệt đối với đồ họa sẽ được hiển thị ở các kích cỡ khác nhau.
 <svg width="200" height="200"> <circle cx="100" cy="100" r="50" fill="#000000" /> </svg>


  1. Sử dụng họa tiết hình ảnh : Một họa tiết hình ảnh là một hình ảnh duy nhất chứa nhiều hình ảnh nhỏ hơn, có thể được hiển thị bằng cách sử dụng thuộc background-position trong CSS. Điều này có thể giảm số lượng yêu cầu HTTP cần thiết để tải hình ảnh, cải thiện hiệu suất.
 .icon1 { background-image: url('icons.png'); background-position: 0 0; } .icon2 { background-image: url('icons.png'); background-position: -20px 0; }


Nguyên tắc trợ năng

Việc tuân thủ các nguyên tắc trợ năng giúp làm cho trang web của bạn trở nên toàn diện hơn và dễ sử dụng hơn cho người khuyết tật. Điều này có thể đạt được thông qua các kỹ thuật như cung cấp văn bản thay thế cho hình ảnh, sử dụng cấu trúc tiêu đề phù hợp và thêm nhãn biểu mẫu phù hợp.


  1. aria-label cung cấp nhãn cho phần tử không có nhãn hiển thị. Điều này có thể hữu ích cho các yếu tố như nút hoặc biểu tượng không có nhãn văn bản.
 <button aria-label="Search"><i class="search"></i></button>


  1. Cung cấp aria-required chỉ ra các trường biểu mẫu bắt buộc. Thuộc tính aria-required có thể được sử dụng để chỉ ra rằng trường biểu mẫu là bắt buộc. Điều này có thể giúp cảnh báo người dùng và các công nghệ hỗ trợ rằng trường phải được điền để gửi biểu mẫu.
 <label for="name">Name</label> <input type="text" id="name" name="name" required aria-required="true">


  1. Thuộc tính aria-hidden cho phép ẩn một phần tử khỏi các công nghệ hỗ trợ. Điều này có thể hữu ích cho các yếu tố trang trí không truyền tải thông tin quan trọng.
 <img src="decorative.jpg" alt="" aria-hidden="true">


  1. aria-expanded cho phép chỉ ra trạng thái của một phần tử có thể thu gọn. Thuộc tính aria-expanded có thể được sử dụng để cho biết liệu một phần tử có thể thu gọn, chẳng hạn như menu thả xuống, hiện đang được mở rộng hay thu gọn. Điều này có thể giúp cảnh báo người dùng và các công nghệ hỗ trợ về trạng thái hiện tại của phần tử.
 <button aria-expanded="false" aria-controls="menu">Menu</button> <ul id="menu" aria-hidden="true"> <li>Option 1</li> <li>Option 2</li> <li>Option 3</li> </ul>


  1. aria-live để thông báo cập nhật nội dung. Thuộc tính aria-live có thể được sử dụng để chỉ ra rằng nội dung của phần tử có thể được cập nhật không đồng bộ. Điều này có thể hữu ích để thông báo cập nhật nội dung, chẳng hạn như tin nhắn hoặc thông báo mới, cho các công nghệ hỗ trợ.
 <div id="notifications" aria-live="polite"> <p>You have 1 new message</p> </div>


  1. aria-describedby descriptedby cho phép cung cấp mô tả của một phần tử. Thuộc tính aria-describedby descriptedby có thể được sử dụng để chỉ định một phần tử cung cấp mô tả cho phần tử hiện tại. Điều này có thể hữu ích để cung cấp thêm ngữ cảnh hoặc hướng dẫn cho các trường biểu mẫu hoặc các yếu tố tương tác khác.
 <label for="email">Email address</label> <input type="email" id="email" name="email" aria-describedby="email-description"> <p id="email-description">Please enter your email address</p>

Tối ưu hóa trong JavaScript

JavaScript là một ngôn ngữ lập trình mạnh mẽ và linh hoạt, nhưng nó cũng có thể là một ngôn ngữ sử dụng nhiều tài nguyên. Do đó, điều quan trọng là phải tối ưu hóa mã JavaScript của bạn để đảm bảo mã chạy hiệu quả và không ảnh hưởng đến hiệu suất tổng thể của trang web hoặc ứng dụng của bạn.


Dưới đây là một số mẹo để tối ưu hóa hiệu suất JavaScript:


  • Giảm thiểu mã của bạn : Xóa khoảng trắng không cần thiết, nhận xét và các ký tự không cần thiết khác có thể giúp giảm kích thước tệp JavaScript của bạn và cải thiện thời gian tải.


  • Trình biên dịch JavaScript : Trình biên dịch JavaScript, chẳng hạn như Babel hoặc TypeScript, có thể giúp tối ưu hóa mã bằng cách chuyển đổi mã thành định dạng hiệu quả hơn.


  • Tránh chặn luồng chính : luồng chính chịu trách nhiệm xử lý các tương tác của người dùng và hiển thị trang, do đó, điều quan trọng là tránh chặn luồng này với các tác vụ chạy lâu hoặc sử dụng nhiều tài nguyên. Thay vào đó, hãy cân nhắc sử dụng trình xử lý web hoặc các chức năng không đồng bộ để giảm tải các tác vụ này cho các luồng khác.


  • Tách mã cho phép bạn chia mã JavaScript thành các phần nhỏ hơn để có thể tải theo yêu cầu. Điều này có thể cải thiện hiệu suất bằng cách giảm số lượng mã cần tải và phân tích cú pháp ban đầu. Bạn có thể sử dụng các công cụ như Webpack hoặc Rollup để thực hiện phân tách mã.


  • Lazy loading cho phép bạn trì hoãn việc tải nội dung cho đến khi cần. Điều này có thể cải thiện hiệu suất bằng cách giảm lượng dữ liệu cần tải ban đầu. Bạn có thể sử dụng API IntersectionObserver để triển khai quá tải.

 // Lazy loading with IntersectionObserver const observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { // Load content observer.unobserve(entry.target); } }); }); document.querySelectorAll('[data-lazy]').forEach((element) => { observer.observe(element); });


  • Bộ nhớ đệm cho phép lưu trữ dữ liệu trong trình duyệt để có thể sử dụng lại mà không cần phải tải lại từ máy chủ. Điều này có thể cải thiện hiệu suất bằng cách giảm số lượng yêu cầu mạng cần được thực hiện. Bạn có thể sử dụng Cache API để triển khai bộ nhớ đệm.
 if ('caches' in window) { caches.open('my-cache').then((cache) => { cache.add('/data.json').then(() => { console.log('Data added to cache'); }); }); }


  • Công cụ giám sát hiệu suất : Công cụ giám sát hiệu suất cho phép theo dõi hiệu suất của trang web và xác định các vấn đề tiềm ẩn. Điều này có thể giúp tối ưu hóa hiệu suất của trang web và cải thiện trải nghiệm người dùng. Một số công cụ phổ biến bao gồm Lighthouse và SpeedCurve.


  • Công cụ Linting : Là ESLint, kiểm tra mã để tìm lỗi và đề xuất các cải tiến, giúp đảm bảo rằng mã nhất quán và tuân theo các phương pháp hay nhất.

Phần kết luận

Phát triển giao diện người dùng liên quan đến một loạt các phương pháp và kỹ thuật có thể giúp cải thiện hiệu suất và trải nghiệm người dùng của một trang web.


Một số phương pháp hay nhất mà bạn có thể làm theo bao gồm tối ưu hóa hình ảnh và các nội dung khác, tuân theo các nguyên tắc trợ năng và tối ưu hóa JavaScript. Bằng cách làm theo các phương pháp hay nhất này, bạn có thể xây dựng các trang web chất lượng cao và hoạt động tốt, mang lại trải nghiệm tuyệt vời cho người dùng.