- vừa được xem lúc

Next Image một feature, một nâng cấp tuyệt vời version nextjs 10

0 0 49

Người đăng: Nguyen Phuc Cuong

Theo Viblo Asia

NextJS đã cho ra mắt version 10 cách đây 2 tháng với hơn 20 fearture nâng cấp đáng giá. Chúng ta có thể kể ra những features nổi bật như

  1. Next/Image: với khẳ năng render image cho các kích thước màn hình tương ứng
  2. Next/link: giải quyết vấn đề href và giờ đây chúng ta không còn phải khai báo as như trước
  3. Next.js Analytics: Đo lường và hành động dựa trên số lượng người dùng
  4. Next.js Commerce: Hỗ trợ xây dựng các trang thương mại điện tử hiệu suất cao
  5. React 17 Support: Version 10 đã tích hợp react mới nhất là version 17

Còn rất nhiều feature hay các bạn có thể tham khảo ở đây

Bây giờ chúng ta đi tìm hiểu sâu vào 1 feature mà mình đã tích hợp vào trong dự án trong quá trình upgrade lên NextJS version 10 đó là Next/Image

Một trong những lý do mình muốn update lên Next 10 vì có Next/Image và Next/Link

Next/Image đã giải quyết được các vấn đề gì, tại sao nó lại luôn cuốn mình chúng ta cùng tìm hiểu thêm nhé

Với bản nâng cấp version 10 ngoài optimize về tối ưu dung lương file js giảm 23% so với version trước, còn giải quyết vấn đề nữa là tối ưu hoá hình ảnh vì ngoài file js vì hình ảnh chiếm 50% dung lượng tải trang.

Vấn đề ở đây là gì, ngày nay chúng ta truy cập vào trang web không phải từ PC, mà còn từ các thiết bị cầm tay như điện thoại, tablest, rất nhiều các kích thước khác nhau.

Ví dụ trên điện thoại màn hình nhỏ việc load hình ảnh kích thước 2000 x 2000 pixel là điều không cần thiết. Vì vậy để tối ưu hoá về mặt hình ảnh thì các nhà phát triển NextJS đã hỗ trợ cơ chế render, tối ưu hoá hình ảnh trên các thiết bị khác nhau.

Nếu trên PC cần tải các hình ảnh 2000 x 2000 pixel, thì trên các thiết bị mobile chúng chỉ cần tải kích thước 100 x 100 pixel. Để tăng trải nghiệm người dùng lên một level cao hơn.

Còn một tính năng khác của Next/Image là tự động lazy loading, tự động preloading và xác định kích thước ảnh tương ứng với thiết bị

Chúng ta cùng tìm hiểu qua cách sử dụng nhé

Trước khi sử dụng được Next/Image chúng ta cần khai báo nguồn url image từ nguồn nào

trong next.config.js như sau

module.exports = { images: { domains: ['example.com'], },
}

nếu chúng ta có nhiều nguồn thì chỉ việc khai báo thêm trong domains mọi người nhé.

Bây giờ chúng ta có thể sử dụng như sau

import Image from 'next/image' function Home() { return ( <> <h1>My Homepage</h1> <Image src="/me.png" alt="Picture of the author" width={500} height={500} /> <p>Welcome to my homepage!</p> </> )
} export default Home

thay vì sử dụng img của Html thông thường thì chúng ta khai báo import Image from 'next/image' nhé các bạn

một trong những props quan trọng và requried là widthheight nếu không có thuộc tính này thì bạn buộc phải khai báo layout="fill"

Để tối ưu cho các devices, Next/Image cho chúng ta khai báo các devices cũng như các image size, nếu không khai báo thì nextjs sẽ lấy các giá trị mặc định.

module.exports = { images: { domains: ['example.com'], deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840], imageSizes: [16, 32, 48, 64, 96, 128, 256, 384], },
}

Về cách sử dụng đơn giản phải không các bạn, còn một vài props của Next/Image bạn có thể tìm hiểu thêm ở đây

Hy vọng bài viết giúp bạn có thể áp dụng Next/Image vào trong dự án của mình một cách nhanh chóng.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Viết một chiếc app quản lý Hạn sử dụng của thực phẩm

Mở đầu. Tôi là 1 kỹ sư công nghệ thông tin mới ra trường. Trong thời gian học Đại học, từ năm 1 tới năm 4, tôi đi làm thêm tại TSUTAYA (chuỗi cửa hàng bán sách, video...v.v nổi tiếng bên Nhật). Về chiếc App tôi đã phát triển. App tôi phát triển là Web App giúp quản lý hạn sử dụng của đồ ăn.

0 0 40

- vừa được xem lúc

Routing trong Next.js

Trước đó bạn có thể đang tò mò về Next.js, vào đây luôn bạn ơi. (go). .

1 0 44

- vừa được xem lúc

Cài đặt chuyển đổi ngôn ngữ trong một project NextJS

Ở phiên bản Nextjs Version 10 mới đây, việc sử dụng i18n đã trở nên dễ dàng hơn qua tính nâng cao là Internationalized Routing. Cài đặt cấu hình cơ bản. Tại file next.config.

0 0 55

- vừa được xem lúc

Cấu hình eslint airbnb, prettier cho dự next.js sử dụng typescript

Chào mọi, mình đã quay lại đây. Hôm nay mình sẽ đem đến một chủ đề linter cụ thể cấu hình eslint cho dự án next.

0 0 177

- vừa được xem lúc

Handling custom page navigation on Next.js

Last month we discussed about different kind of routing on Next.js. Here's a short example of creating a component that moves the user to next page. import { useRouter } from 'next/router'.

0 0 71

- vừa được xem lúc

Ứng dụng web kết hợp API Laravel và next.js từ a-Z (Phần 1- hiển thị dữ liệu)

1. Lời nói đầu:. Chào mọi người, chắc hẳn với lập trình viên chúng ta, API là một cụm từ rất quen thuộc với chúng ta. Thông thường, với những ứng dụng web lớn, chúng ta thường chia thành 2 thành phần là API và Web.

0 0 133