在vue3的setup语法糖中为什么无法直接使用useRouter().currentRoute

2023-12-20

在vue3的setup语法糖中为什么无法直接使用useRouter().currentRoute

问题

在setup语法糖中,不能直接使用useRouter().xx

<script setup>
import { useRouter } from 'vue-router';
const router = useRouter(); 
console.log(router) //可以正确打印出路由信息
</script>
<script setup>
import { useRouter } from 'vue-router'; 
console.log(useRouter()) //打印出undifine,并且控制台报警告
</script>

原理

useRouter() 是 Vue 3 提供的一个在 Composition API 中获取路由实例的函数,它在组件内部自动进行了响应性处理。但是,直接使用 useRouter().currentRoute 有时会导致在不合适的时机访问路由信息,因为 useRouter() 返回的是一个响应式的路由对象,而访问 .currentRoute 可能会在路由初始化之前被执行,从而导致未定义错误或其他问题。

通过 const router = useRouter(); router.currentRoute 的方式可以确保 useRouter() 被调用,并将路由实例保存在 router 变量中。这样,通过 router.currentRoute 就能在正确的时机、在路由初始化之后获取到当前的路由信息。

总结

如果在组件内部需要访问当前路由的信息,最佳实践是使用 const router = useRouter(); 来获取路由实例,然后通过 router.currentRoute 或其他属性来访问路由信息。这样可以确保在路由实例被正确初始化后再去访问路由信息,避免可能的未定义错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在vue3的setup语法糖中为什么无法直接使用useRouter().currentRoute 的相关文章

  • Javascript Promise“then”始终运行,即使 Promise 未能执行

    我希望当调用第二个 then 时不执行第三个 then 但是 即使 Promise 被拒绝 调用第二个 then 并且代码返回 rejected 然后返回 undefined 它仍然调用第三个 then 如何不运行第三个 then 这样 未
  • 以编程方式填写reactjs表单

    我正在编写一个用户脚本 但无法填写由reactjs制作的表单 我的代码 document querySelector id username value email protected cdn cgi l email protection
  • 在新的 Google 协作平台 <嵌入 HTML> 中使用 localStorage 和 IndexedDB 不起作用

    我正在尝试将新的 Google 协作平台用于我开发的网页 但是 我在存储本地数据时遇到了问题 本地文件在 Windows 和 Apple safari chrome 中运行良好 从 Google 协作平台尝试一下 没有什么乐趣 此外 在 s
  • 如何格式化 Highcharts 的 (x,y) 对数据的日期时间

    我的序列化方法会产生如下所示的日期时间字符串 2014 07 09T12 30 41Z 为什么下面的代码不起作用 function container highcharts xAxis type datetime series data x
  • 如何将内联 JavaScript 与 Express/Node.js 中动态生成的内容分开?

    对于具有几年 Web 开发经验但没有找到答案的人来说 这是一个有点菜鸟的问题程序员堆栈交换 or Google 我决定在这里问一下 我在用Express网络框架Node js 但这个问题并不特定于任何 Web 框架或编程语言 以下是从数据库
  • 如何针对 Node.js 中发生的每个错误发送电子邮件?

    假设我的 node js 应用程序正在运行 如果出现错误 我的意思是所有错误 不仅仅是网络错误 如果出现错误 则很重要 我如何调用函数向我发送电子邮件 基本上 在我希望它写入 err out 之前 我希望向我发送一封电子邮件 我正在使用no
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • 如何纠正流警告:解构(缺少注释)

    我正在编写一个小型 React Native 应用程序 并且正在尝试使用 Flow 但我无法在任何地方真正获得有关它的正确教程 我不断收到错误 destructuring Missing annotation 有关 station 这段代码
  • 设置 cookie 时中断 JavaScript 执行

    当设置 cookie 时 是否可以始终中断浏览器开发人员工具中的 javascript 执行 无需显式设置 JS 断点 document cookie 在 html head 块的开头添加此代码片段效果很好
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 刷新页面时保存用户的选择

    我目前有一个页面显示不同团队的数据 我有一些数据 用户可以单击使其处于 打开 或 关闭 状态 并为每个数据显示不同的图标 它基本上就像一个清单 只是没有物理复选框 我想记住哪些 复选框 已被选中 即使在用户刷新页面或关闭浏览器并稍后返回之后
  • 为什么我们在打字稿中使用 HTMLInputElement ?

    我们为什么使用 document getElementById ipv as HTMLInputElement value 代替 document getElementById ipv value 功能getElementById返回具有类
  • Javascript 假值(null、未定义、false、空字符串:“”或 '' 和 0)和比较(==)运算符 [重复]

    这个问题在这里已经有答案了 当我使用任何一个值时 null undefined false 0 in a if陈述 它总是被评估为谬误 false 另外 这些值的否定 null undefined false 0 in a if语句总是被评
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • 代码镜像错误:未捕获错误:扩展集中无法识别扩展值([对象对象])

    全部 我目前正在从事一个React Electron项目 该项目的目标是完成一个Markdown编辑器 当我配置codemirror 该程序报告错误说 Uncaught Error Unrecognized extension value
  • 用于交互式图形绘制的轻量级 JavaScript 库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有兴趣了解用于绘制交互式图表的最轻量级 javascript 库 我掌握的数据主要是与海洋研究相关的科学数据 我知道一些 jquery
  • 在 CKEditor 中设置字体大小和字体系列

    我正在使用 ckeditor 我想问一下这个插件如何设置font family和font size 我尝试过使用 CKEDITOR config font defaultLabel Arial CKEDITOR config fontSiz
  • 如何在执行新操作时取消先前操作的执行?

    我有一个动作创建器 它会进行昂贵的计算 并在每次用户输入内容时调度一个动作 基本上是实时更新 但是 如果用户输入多个内容 我不希望之前昂贵的计算完全运行 理想情况下 我希望能够取消执行先前的计算并只执行当前的计算 没有内置功能可以取消Pro
  • 如何使用asm.js进行测试和开发?

    最近我读到asm js规范 看起来很酷 但是是否有任何环境 工具来开发和测试这个工具 这还只是处于规范阶段吗 您可以尝试使用 emscripten 和 ASM JS 1 并从侧分支在 firefox 构建中运行它 有关 asm js 的链接
  • Vue.js[vuex] 如何从突变中调度?

    我有一个要应用于 json 对象的过滤器列表 我的突变看起来像这样 const mutations setStars state payload state stars payload this dispatch filter setRev

随机推荐

  • 用户管理第2节课--idea 2023.2 后端--实现基本数据库操作(操作user表)

    一 模型user对象 gt 和数据库的字段关联 自动生成 其中涉及删除表数据 一切又从零开始 二 模型user对象 gt 和数据库的字段关联 2 1在model文件夹下 新建 user对象 2 1 1 概念 大家可以想象我们现在的数据是存储
  • ResNet实战:CIFAR-10数据集分类

    本节将使用ResNet实现CIFAR 10数据集分类 7 2 1 CIFAR 10 数据集简介 CIFAR 10数据集共有60000幅彩色图像 这些图像是32 32像素的 分为10个类 每类6000幅图 这里面有50000幅用于训练 构成了
  • ArkTS @Observed、@ObjectLink状态装饰器的使用

    作用 Observed ObjectLink装饰器用于在涉及嵌套对象或者数组元素为对象的场景中进行双向数据同步 状态的使用 1 嵌套对象 我们将父类设置为 Observed状态 这个时候 子应该设置 ObjectLink才能完成数据的双向绑
  • 测试开发 | 个性化推荐引领社交媒体新潮流:定制化互动,畅享个性世界

    在信息爆炸的数字时代 社交媒体的个性化推荐技术正成为用户互动体验的亮点 通过先进的算法和智能化系统 个性化推荐技术为用户提供了更加精准 贴近兴趣的内容 为用户创造了一个充满个性 丰富多彩的社交空间 1 定制化内容 满足个性需求 个性化推荐技
  • 框架网页中如何查看中心网页源码

    框架网页分框架和中心显示页面 直接浏览器右键 显示源码 看到的是框架的网页 方法 假设 框架网址是 a com menu index php 假设 单击菜单后显示的center网页是 manage user php 则我们知道最终中心网页的
  • QT中网络编程之发送Http协议的Get和Post请求

    文章目录 HTTP协议 GET请求 POST请求 QT中对HTTP协议的处理 1 QNetworkAccessManager 2 QNetworkRequest 3 QNetworkReply QT实现GET请求和POST请求
  • 我该如何解除微软账户儿童模式?

    之前注册微软账户时把日期填成小于14岁的了 现在出现由于你的家庭安全设置 你不能使用 Google Chrome 您可以访问以下网页 https account microsoft com family home lang 首先登陆后点击添
  • 华纳云:ServiceComb如何实现zipkin分布式调用链追踪

    Apache ServiceComb是一个开源的微服务框架 它提供了分布式系统开发所需的一系列工具和服务 在ServiceComb中 实现分布式调用链追踪可以通过整合Zipkin来实现 Zipkin是一个开源的分布式追踪系统 它可以帮助你跟
  • 23年12月AI烟火识别系统应用案例-北京梅兰芳故居防火系统

    AI烟火识别智能视频分析系统在文化遗产保护领域的应用 尤其是在梅兰芳故居防火系统的部署 是现代科技与传统文化保护结合的典范 这篇文章将详细介绍富维烟火识别系统的设计 实施及其在23年12月在北京梅兰芳故居中的应用 背景介绍 nbsp 梅兰芳
  • http通信 axios VS fetch

    基本用法 GET 两者都是基于Promise 所以可以使用 then 也可以使用async await fetch需要手动对相应内容进行转换 axios会根据响应头类型 进行自动转换 所以axios的代码更加简洁 axios get htt
  • netty源码:(28)ChannelPromise

    ChannelPromise是ChannelFuture的子接口 它是可写入的 其父接口Promise定义如下 ChannelPromise有个默认的实现类 DefaultChannelPromise 它的setSuccess方法用来调用所
  • Microsoft Family Safety Microsoft 家庭安全将人员添加到你的家庭组

    在 创建家庭组 后 通过添加家庭成员来浏览 Microsoft 家庭安全 的功能和权益 如果某人已是家庭组成员 则在加入另一个组之前 他们必须 退出该组或从该组中删除 他们还可以 创建一个新的 Microsoft 帐户 以与新的家庭组相关联
  • 大模型ChatGLM简介及应用情景

    本节介绍生成模型GLM系列模型的新成员 中英双语对话模型ChatGLM ChatGLM分为6B和130B 默认使用ChatGLM 6B 两种 主要区别在于其模型参数不同 ChatGLM是一个开源的 支持中英双语问答的对话语言模型 并针对中文
  • WaterBench: Towards Holistic Evaluation of Watermarks for Large Language Models

    本文是LLM系列文章 针对 WaterBench Towards Holistic Evaluation of Watermarks for Large Language Models 的翻译 WaterBench 面向大型语言模型水印的整
  • 【vue】$bus 跨组件调用方法

    1 新建bus js import Vue from vue 使用 Event Bus const bus new Vue export default bus 2 main js引用 import bus from libs bus Vu
  • 什么是DLNA

    DLNA旨在解决个人PC 消费电器 移动设备在内的无线网络和有线网络的互联互通 使得数字媒体和内容服务的无限制的共享和增长成为可能 DLNA的口号是Enjoy your music photos and videos anywhere an
  • LLaVA和LLaVA-Plus视觉指令微调及工具使用构建多模态智能体

    认识和理解视觉内容 以及基于人类指令对视觉世界进行推理 长久以来一直是一个具有挑战性问题 得益于大规模预训练 OpenAI 的 GPT 4V 展示了在自然语言处理任务和复杂视觉理解中令人印象深刻的能力 智源社区邀请到了LLaVA的一作柳昊天
  • 测试开发 | 智能辅助在心理健康治疗中的革新:倾听、理解、支持的新时代

    随着科技的迅速发展 智能辅助技术正在逐渐渗透到心理健康治疗领域 为个体提供更为智能 个性化的支持 这种创新性的结合为心理健康领域带来了新的可能性 使治疗更加灵活 高效 并为患者提供了更全面的关怀 1 虚拟治疗环境 智能辅助技术通过虚拟治疗环
  • 航空港务数据大屏为航空港的可持续发展提供有力支撑!

    随着经济的发展 不断加建与扩建民用机场 空港行业规模不断扩大 在不断引进和消化发达国家先进技术的同时 中国深入开展了对新技术和新材料的研究 极大地丰富和发展了中国的机场建设技术 且各项机场建设计划均已落实推进 行业在经济发展的推动下欣欣向荣
  • 在vue3的setup语法糖中为什么无法直接使用useRouter().currentRoute

    在vue3的setup语法糖中为什么无法直接使用useRouter currentRoute 问题 在setup语法糖中 不能直接使用useRouter xx