[英]Next.js change url without building the page using ISR
我正在使用 ISR 使用 next.js 構建 static 產品頁面。 由於要生成很多頁面,我只為它生成了幾個頁面。 我要解決的問題是在查看產品類別頁面時,我單擊產品(使用下一個/鏈接創建)來查看產品頁面,到產品頁面的轉換速度很慢。
所以我想要實現的是在運行或構建 static 頁面之前更改 URL 。 有沒有辦法在轉移產品頁面之前阻止下一個/鏈接構建頁面?
不要使用 next/link 或 router.push,而是使用 router.replace
router.replace(`/product/${id"}`)
讓我知道這是否有效。
你可以做的是使道具不需要,
在加載您的 nextJs 的 ISG 頁面期間必須花費時間的是 GetStaticProps 中的調用 api,類似這樣:
export async function getStaticProps({ params }) { const { status, data } = await axios.get<Data>( `${server}/data` ); if (status === 404) { return { notFound: true }; } return { props: {...data }, revalidate: 60, }; }
但您也可以決定在加載 state 期間使用后備阻塞獲取數據:
const MyPage = (props) => { const [data,setData] = useState<Data>(null); useEffect(() => { (function() const {data} = axios.get(`${server}/data`); setData(data); )() },[]) return( <div>?data. <div>loading..: </div>: <div>Product: {data}</div> </div> ) } export async function getStaticProps({ params }){ return { props: { isloading, true }: revalidate, 60; }; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.