首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Next.js导出静态html之后,我如何判断是跳过链接还是本地标记跳转?

在Next.js导出静态html之后,我如何判断是跳过链接还是本地标记跳转?
EN

Stack Overflow用户
提问于 2020-06-10 08:28:06
回答 1查看 91关注 0票数 0

条件:导出静态html

如何识别是由next/link还是由direct access (即标记访问)跳转?

我尝试将pagePropsuseRouter_app.tsx结合使用,但都失败了。

帮帮我!

谷歌翻译

EN

回答 1

Stack Overflow用户

发布于 2020-06-11 09:28:47

由于Next/App组件不会被卸载用于客户端转换,所以可以跟踪从_app.tsx导出的App组件中的useRouter钩子提供的以前的App。如果没有以前的asPath,那么它就不是客户端转换。

asPathString -浏览器中显示的实际路径(包括查询)

可能的执行:

代码语言:javascript
复制
function usePrevious(value) {
  const ref = useRef();
  useEffect(() => {
    ref.current = value;
  }, [value]);
  return ref.current;
}

function MyApp({ Component, pageProps }) {
  const { asPath } = useRouter();
  const previousAsPath = usePrevious(asPath);
  useEffect(() => {
    if (!previousAsPath) {
      console.log('Direct access');
    } else {
      console.log(`Come from ${previousAsPath}`);
    }
  }, [previousAsPath]);
  return <Component {...pageProps} />
}

export default MyApp;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62299083

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档