我正在使用Next的链接组件重定向到其他页面,但当我点击它重新加载页面完全根据Next的文档它是如何使用的如下
<Link href='/rute'>
<a>Contenido</a>
</Link>
我有一个数组中的路由和内容
export const Navheader = [
{
id: 1,
title: 'home',
link: '/',
},
{
id: 2,
title: 'laptops',
link: '/detailPage',
},
{
id: 3,
title: 'delivery',
link: '/deliveryPage',
},
{
id: 4,
title: 'legal active',
link: '/legalPage',
},
{
id: 5,
title: 'secure payment',
link: '/paymentPage',
},
];
具有数组属性的组件
import PropTypes from 'prop-types';
import { useRouter } from 'next/router';
import Link from 'next/link';
const Navitems = ({ navbar }) => {
const router = useRouter();
return (
<>
<li className='nav-items'>
<Link href={navbar.link}>
<a
className={
router.pathname == navbar.link
? ' nav-links active'
: ' nav-links'
}
>
{navbar.title}
</a>
</Link>
</li>
</>
);
};
Navitems.propTypes = {
navbar: PropTypes.array.isRequired,
}
export default Navitems;
并在导航最后与我的数组
{
Navheader.map((navbar) => (
<Navitems key={navbar.id} navbar={navbar} />
))
}
我也有更简单的按钮,在那里同样的事情发生
删除/那是我在类似问题中看到的事情之一,但它不起作用,如果有人知道为什么会发生这种情况,我会感谢你的帮助
2条答案
按热度按时间cbwuti441#
背景
Next.js是一个静态页面生成器和服务器端渲染器框架。所以它会创建来自服务器(或缓存)的页面,以便在导航时加载这些页面。使用
next/link
(<Link>
标记)可以通过预取缓存的静态页面来优化这一点,这使得加载非常迅速。回答
当您在开发模式下运行时,不会发生这种优化,因此您只能看到
next/link
优化与生产构建一起工作。此外,这只预取静态页面,所以它仍然需要加载SSR页面。也就是说,如果您正在寻找一个不“重新加载”的解决方案,那么您需要一个纯react解决方案。但是你会错过使用next的SEO好处。
v440hwme2#
从SPA页面的
next/link
导入NextLink