[next.js]移动端调试vconsole

一般最简单的调试方式当然是使用vconsole来输出想要的数据啦;
next.js如果想使用的话需要在客户端环境里调用才行(服务端直接看cmd控制台就够了);

先安装vconsole

npm i -D vconsole

next.js不像react cli或者vue一样有一个main.ts作为入口文件,next.js的入口可以选择公共layout,但是入口的Layout一般都是服务器组件便于设置一些meta信息,所以我们选择layout的下级layout里引入vconsole
即:
app
- layout.tsx
[main]
- layout.tsx // 这里引入vconsole
- 其他文件…

结构是这样的
在这里插入图片描述

或者想直接在入口的layout里引入也行,方案是使用dynamic动态导入组件,这个组件里引入vconsole就行。

先说第一种:

直接在这个layout的useEffect里加载vconsole (这里只会在开发环境里启用vconsole,基于webpack/turbopack的tree shake功能,在正式环境是不会把vconsole打包进来的) 然后使用import导入三方库并初始化。

useEffect(() => {
    if (process.env.NODE_ENV === 'development') {
      let vConsole: VConsole;
      const loadVConsole = async () => {
        const VConsole = (await import('vconsole')).default;
        vConsole = new VConsole();
      };
      loadVConsole();
      return () => {
        if (vConsole) vConsole.destroy();
      };
    }
  }, []);

然后第二种:

新建一个tsx文件,在这个tsx组件的useEffect里复制上面的代码(这里也是为了防止正式环境把vconsole打包进去),然后在入口的layouts里使用dynamic动态导入这个组件并挂载到页面上;

import dynamic from "next/dynamic";

...

const VConsole = dynamic(() => import('./xxx.tsx'), {ssr: false});
// 然后直接使用<VConsole />这个组件就行了;因为我们设置了ssr为false告诉Next不需要服务端渲染这个组件

export default RootLayout({children}: {children: React.ReactNode}) {
	return (
		...
		<VConsole />
		{children}
		...
	)
}

相关推荐

  1. uniapp使用vconsole调试 兼容App

    2024-06-12 14:18:01       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-12 14:18:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-12 14:18:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-12 14:18:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-12 14:18:01       18 阅读

热门阅读

  1. 第5天:Flask应用结构

    2024-06-12 14:18:01       7 阅读
  2. 记录 unplugin-vue-components不生效

    2024-06-12 14:18:01       8 阅读
  3. 【持久层】PostgreSQL使用教程

    2024-06-12 14:18:01       11 阅读
  4. Springboot配置websocket,https使用 WebSocket 连接

    2024-06-12 14:18:01       10 阅读
  5. React组件通信方式总结

    2024-06-12 14:18:01       5 阅读
  6. 原生js实现缩略图

    2024-06-12 14:18:01       5 阅读
  7. perf kvm to profile vm_exit

    2024-06-12 14:18:01       12 阅读
  8. unordered_set,unordered_map模拟实现

    2024-06-12 14:18:01       7 阅读
  9. Web前端入门必学:解锁数字世界的魔法钥匙

    2024-06-12 14:18:01       6 阅读
  10. PHP 文件上传:全面指南与最佳实践

    2024-06-12 14:18:01       8 阅读
  11. linux top 中显示swap用量并排序

    2024-06-12 14:18:01       8 阅读
  12. Redis 数据持久化策略和数据过期策略

    2024-06-12 14:18:01       6 阅读
  13. flutter EventBus

    2024-06-12 14:18:01       5 阅读
  14. 什么是前端工程化?

    2024-06-12 14:18:01       6 阅读