面试题答案
一键面试-
从产品列表页面跳转到产品详情页面:
- 在
/products
页面(假设为products.js
)中,假设产品列表数据结构如下:
import Link from 'next/link'; const products = [ { id: 1, name: 'Product 1' }, { id: 2, name: 'Product 2' } ]; const ProductsPage = () => { return ( <div> <h1>All Products</h1> <ul> {products.map(product => ( <li key={product.id}> <Link href={`/products/${product.id}`}> <a>{product.name}</a> </Link> </li> ))} </ul> </div> ); }; export default ProductsPage;
- 参数传递说明:这里通过在
Link
组件的href
属性中,将产品的id
作为动态路由参数嵌入到链接中,如/products/${product.id}
。当点击链接时,productId
参数会被传递到/products/[productId]
页面。
- 在
-
从产品详情页面跳转到产品评论页面:
- 在
/products/[productId]
页面(假设为productDetails.js
)中,获取productId
参数并生成跳转到评论页面的链接:
import Link from 'next/link'; import { useRouter } from 'next/router'; const ProductDetailsPage = () => { const router = useRouter(); const { productId } = router.query; return ( <div> <h1>Product Details: {productId}</h1> <Link href={`/products/${productId}/reviews`}> <a>View Reviews</a> </Link> </div> ); }; export default ProductDetailsPage;
- 参数传递说明:同样是在
Link
组件的href
属性中,将从当前页面获取到的productId
作为动态路由参数嵌入到链接/products/${productId}/reviews
中。这样当点击链接时,productId
参数就会被传递到/products/[productId]/reviews
页面,使得该页面可以根据productId
来展示对应的产品评论。
- 在