next.js 为什么使用下一个链接时会重新加载页面,js?

ngynwnxp  于 2023-04-30  发布在  其他
关注(0)|答案(2)|浏览(256)

我正在使用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} />
    ))
}

我也有更简单的按钮,在那里同样的事情发生
删除/那是我在类似问题中看到的事情之一,但它不起作用,如果有人知道为什么会发生这种情况,我会感谢你的帮助

cbwuti44

cbwuti441#

背景

Next.js是一个静态页面生成器和服务器端渲染器框架。所以它会创建来自服务器(或缓存)的页面,以便在导航时加载这些页面。使用next/link<Link>标记)可以通过预取缓存的静态页面来优化这一点,这使得加载非常迅速。

回答

当您在开发模式下运行时,不会发生这种优化,因此您只能看到next/link优化与生产构建一起工作。此外,这只预取静态页面,所以它仍然需要加载SSR页面。
也就是说,如果您正在寻找一个不“重新加载”的解决方案,那么您需要一个纯react解决方案。但是你会错过使用next的SEO好处。

v440hwme

v440hwme2#

从SPA页面的next/link导入NextLink

相关问题