Cách sử dụng Bộ định tuyến Next.js để phát hiện liên kết đang hoạt động và gán một lớp cho nó, vì vậy chúng tôi có thể tạo kiểu cho nó bằng CSS
Một tính năng rất quan trọng khi làm việc với các liên kết là xác định đâu là URL hiện tại và cụ thể là gán một lớp cho liên kết đang hoạt động, vì vậy chúng tôi có thể tạo kiểu cho nó khác với các lớp khác.
Ví dụ, điều này đặc biệt hữu ích trong tiêu đề trang web của bạn.
Next.js mặc địnhLink
thành phần được cung cấp trongnext/link
không tự động làm điều này cho chúng tôi.
Chúng tôi có thể tự tạo một thành phần Liên kết và chúng tôi lưu trữ nó trong một tệpLink.js
trong thư mục Thành phần và nhập thay vì nhập mặc địnhnext/link
.
Trong thành phần này, trước tiên chúng ta sẽ nhập React từreact
, Liên kết từnext/link
vàuseRouter
móc từnext/router
.
Bên trong thành phần, chúng tôi xác định xem tên đường dẫn hiện tại có khớp vớihref
chỗ dựa của thành phần và nếu vậy, chúng tôi nốiselected
lớp cho trẻ em.
Cuối cùng, chúng tôi trả lại con này với lớp được cập nhật, sử dụngReact.cloneElement()
:
import React from 'react'
import Link from 'next/link'
import { useRouter } from 'next/router'
export default ({ href, children }) => {
const router = useRouter()
let className = children.props.className || ‘’
if (router.pathname === href) {
className = </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">className</span><span style="color:#e6db74">}</span><span style="color:#e6db74"> selected
}
return <Link href={href}>{React.cloneElement(children, { className })}</Link>
}
Tải xuống miễn phí của tôiSổ tay Next.js
Thêm các bài hướng dẫn tiếp theo:
- Bắt đầu với Next.js
- Next.js vs Gatsby vs create-react-app
- Cách cài đặt Next.js
- Liên kết hai trang trong Next.js bằng Liên kết
- Nội dung động trong Next.js với bộ định tuyến
- Cung cấp dữ liệu cho thành phần Next.js bằng getInitialProps
- Tạo kiểu cho các thành phần Next.js bằng CSS
- Tìm nạp trước nội dung trong Next.js
- Sử dụng bộ định tuyến để phát hiện liên kết hoạt động trong Next.js
- Xem nguồn để xác nhận SSR đang hoạt động trong Next.js
- Next.js: điền thẻ head bằng các thẻ tùy chỉnh
- Triển khai ứng dụng Next.js ngay bây giờ
- Next.js: chỉ chạy mã ở phía máy chủ hoặc phía máy khách trong Next.js
- Triển khai ứng dụng Next.js trong phiên bản sản xuất
- Cách phân tích các gói ứng dụng Next.js
- Các mô-đun tải chậm trong Next.js
- Thêm thành phần trình bao bọc vào ứng dụng Next.js của bạn
- Các biểu tượng được Next.js thêm vào ứng dụng của bạn
- Gói ứng dụng Next.js
- Cách sử dụng Bộ định tuyến Next.js
- Cách sử dụng các tuyến API Next.js
- Cách lấy cookie phía máy chủ trong ứng dụng Next.js
- Cách thay đổi cổng ứng dụng Next.js