[next.js]移动端调试vconsole

news2024/12/27 10:46:17

一般最简单的调试方式当然是使用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}
		...
	)
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1814538.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python学习从0开始——Kaggle计算机视觉001

Python学习从0开始——Kaggle计算机视觉001 一、卷积分类器1.分类器2.训练分类器3.使用 二、卷积和RELU1.特征提取2.带卷积的过滤器定义3.激活&#xff1a;4.用ReLU检测5.使用 三、最大池化1.最大池压缩2.使用3.平移不变性 四、滑动窗口1.介绍2.步长3.边界4.使用 五、自定义Con…

[linux]如何跟踪linux 内核运行的流程呢

前面已经可以把内核编译出来&#xff0c;但是作为技术狗想看到内核是怎么运行的怎么办&#xff1f; 内核很多代码都是C语言写的&#xff0c;那简单&#xff0c;添加2行代码&#xff1a; include/linux/printk.h 529和530原来的&#xff1a; #define pr_info(fmt, ...) \ …

Vue07-MVVM模型

一、MVVM模型的定义 M&#xff1a;模型&#xff08;model&#xff09;&#xff1a;对应data中的数据&#xff1b;V&#xff1a;视图&#xff08;view&#xff09;&#xff1a;模版&#xff1b;VM&#xff1a;视图模型&#xff08;ViewModel&#xff09;Vue的实例对象。 Vue.js…

计算机网络 —— 运输层(UDP和TCP)

计算机网络 —— 运输层&#xff08;UDP和TCP&#xff09; UDPTCPUDP和TCP的异同点相同点不同点 我们今天来看运输层的两个重要的协议——UDP和TCP UDP UDP&#xff0c;全称为用户数据报协议&#xff08;User Datagram Protocol&#xff09;&#xff0c;是互联网中一种核心的…

探地雷达正演模拟,基于时域有限差分方法,三

回顾上一章内容&#xff0c;主要讲了FDTD及基于C的实现方式和边界条件处理&#xff0c;这一章主要内容有两点&#xff1a;1、基于实际操作流程的GPR正演模拟&#xff08;宽角法和剖面法&#xff09;&#xff1b;2、简单并行化加速GPR正演模拟&#xff08;基于OpenMP&#xff09…

Mybatis Log Free

安装后重启 在 application.yml 配置 configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 选择效果

搭建一个简单的深度神经网络

目录 一、引入所需要的库 二、制作数据集 三、搭建神经网络 四、训练网络 五、测试网络 本博客实验环境为jupyter 一、引入所需要的库 torch库是核心&#xff0c;其中torch.nn 提供了搭建网络所需的所有组件&#xff0c;nn即神经网络。matplotlib类似与matlab&#xff0…

Apple Intelligence全面来袭,熟悉但又不同的味道

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技&#xff08;Mamba,xLSTM,KAN&#xff09;则提…

618购物节入手哪些数码好物好?年度必备好物清单大盘点

随着一年一度的618购物节的到来&#xff0c;数码市场再次掀起了热潮&#xff0c;在这个属于消费者的狂欢节里&#xff0c;各大品牌和商家纷纷推出优惠活动和新品&#xff0c;为数码爱好者们带来了无数的购物选择&#xff0c;那么在这个购物盛宴中&#xff0c;我们应该如何挑选那…

如何进行论文查重,选择合适的查重系统?

原创性是学术写作海洋中的航行灯塔&#xff0c;而论文查重&#xff08;www.check110.com&#xff09;则是保障这束光芒不被云雾遮蔽的工具。而查重系统如何对论文进行查重&#xff0c;又该如何选择论文查重系统呢&#xff1f; 一、论文查重 论文查重&#xff0c;就是检测学术…

Python基础教程(十三):file文件及相关的函数

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; &#x1f49d;&#x1f49…

idea中使用逆向工程生成数据库表的实体类

1、在idea中打开数据库视图&#xff1b; 2、点击database中的号创建数据源连接&#xff08;以MySQL为例&#xff09;&#xff1b; 填入账户密码以及数据库名&#xff1b; 点击测试连接&#xff0c;若出现爆红Server returns invalid timezone. Go to Advanced tab and set serv…

RawChat:优化AI对话体验,全面兼容GPT功能平台

文章目录 一、Rawchat简介1.1 RawChat的主要特性1.2 RawChat的技术原理简述 二、使用教程三、案例应用3.1 图片内容分析3.2 生图演示3.3 文档解析3.4 探索更多 四、小结 一、Rawchat简介 RawChat平台的诞生&#xff0c;其核心理念是降低用户访问类似ChatGPT这类先进AI服务的门…

MySQL复习题(期末考试)

MySQL复习题&#xff08;期末考试&#xff09; 1.MySQL支持的日期类型&#xff1f; DATE,DATETIME,TIMESTAMP,TIME,TEAR 2.为表添加列的语法&#xff1f; alter table 表名 add column 列名 数据类型; 3.修改表数据类型的语法是&#xff1f; alter table 表名 modify 列名 新…

文心智能体体验,打造你自己的GPTs应用

利用百度智能体搭建的《RPG冒险游戏大作战》已经发布啦&#xff01; RPG冒险游戏大作战 玩家扮演一位小小勇士女孩&#xff0c;从被巨龙毁灭的冒险小镇出发&#xff0c;一路披荆斩棘&#xff0c;集齐四件神器后&#xff0c;打败巨龙&#xff0c;夺回小镇的安宁&#xff01; 整…

python3的基本语法说明一

一. 简介 本文开始学习 python3 的基本语法。 二. python3的基本语法 1. 编码 默认情况下&#xff0c;Python 3 源码文件以 UTF-8 编码&#xff0c;所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码&#xff1a; # -*- coding: cp-1252 -*- 上述…

Unity图集

概述 相信在同学们学习过程中&#xff0c;在UI的的使用时候一定经常听说过图集的概念。 Unity有UI的组件&#xff0c;有同学们好奇&#xff0c;那为什么还要使用图集呢&#xff1f; 这就需要提到一个性能优化的问题了&#xff0c;因为过多的UI图片&#xff0c;会大幅增加Dra…

隔离式 AC-DC 反激电源设计原理分析

LinkSwitch-LP 系列旨在取代手机/无绳电话、PDA、数码相机和便携式音频播放器等应用中输出功率 < 2.5 W 的低效线频线性变压器电源。LinkSwitch-LP 还可用作白色家电等应用中的辅助电源。 LinkSwitch-LP 将高压功率 MOSFET 开关与 ON/OFF 控制器集成在一个设备中。它完全由…

Vue 路由传递参数 query、params

1、to的对象写法,绑定参数 <template> 2 <ul> 3 <li v-for"m in messlist" :key"m.id"> 4 <router-link :to"{ //使用params时&#xff0c;这个路径必须用name及别名......name: xiangqing, path: /bbb/message/deta…

自动驾驶#芯片-1

概述 汽车是芯片应用场景之一&#xff0c;汽车芯片需要具备车规级。  车规级芯片对加工工艺要求不高&#xff0c;但对质量要求高。需要经过的认证过程&#xff0c;包括质量管理标准ISO/TS 16949、可靠性标准 AEC-Q100、功能安全标准ISO26262等。  汽车内不同用途的芯片要求…