首页 > 其他分享 >解决vue3 useRoute无法获取get参数记录

解决vue3 useRoute无法获取get参数记录

时间:2024-09-12 12:03:29浏览次数:1  
标签:vue get useRoute import query vue3 router canInput

总结:

使用route.query无法获取到get参数,开发模式代码改动能拿到,但是刷新又没了,需要监听route.query才能拿到get参数。

正文:

我的常规使用方法:

先安装vue-router

npm install vue-router@next

创建src/router/index.js:

import { createRouter, createWebHistory } from 'vue-router'
import HelloWorld from '../components/HelloWorld.vue';
const routes = [
{ path: '/', component: HelloWorld },
]
const router = createRouter({
history: createWebHistory(),
routes,
})
export default router

在main.js中使用路由:

import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(router)
app.mount('#app')

最后在组件或页面中使用:

<script setup lang="ts">
import { watch } from 'vue'
import { useRoute } from 'vue-router'
const route = useRoute()
watch(() => route.query, (newQuery) => {
console.log('query', newQuery)
}, { immediate: true });
</script>

使用watch才能拿到get参数,这里的watch会执行两次:

 

 

 

我的应用场景是:当get参数中canInput等于1时,才显示页面某个元素,我的代码如下:

const canInput = ref(false) // 是否可以输入参数

watch(() => route.query, (newQuery) => {
  console.log('query', newQuery)
  // 使用可选链操作符安全访问 canInput
  if (typeof newQuery?.canInput === 'string') {
  	// 将 string 类型断言为 number
 	 canInput.value = Number(newQuery.canInput) === 1;
  } else {
  	canInput.value = false;
  }
}, { immediate: true });

 

如果只是用route.query,可能拿不到get参数,关于其中的原因我也不太清楚,有知道的朋友可以在评论告知我。

这篇分享文章就到这里啦!如果你对文章内容有疑问或想要深入讨论,欢迎在评论区留言,我会尽力回答。同时,如果你觉得这篇文章对你有帮助,不妨点个赞并分享给其他同学,让更多人受益。

想要了解更多相关知识,可以查看我以往的文章,其中有许多精彩内容。记得关注我,获取及时更新,我们可以一起学习、讨论技术,共同进步。

感谢你的阅读与支持,期待在未来的文章中与你再次相遇!

我的微信公众号:【xdub】,欢迎大家订阅,我会同步文章到公众号上。

标签:vue,get,useRoute,import,query,vue3,router,canInput
From: https://www.cnblogs.com/shuinanxun/p/18409905

相关文章

  • Vue3学习
    Vue3学习Vue3学习(一)——创建Vue3工程1.安装Node.js首先,确保你的系统上已经安装了Node.js。你可以通过运行以下命令检查:node-vnpm-v2.使用Vite创建Vue3项目在终端(命令行)中,运行以下命令来创建一个新的Vue3项目:npmcreatevite@latestmy-vue-app----temp......
  • vue3兄弟组件间的通信 mitt
    1、安装插件npmimitt-s2、在scr下的utils文件创建mitt.ts文件/***@author*@date20240912*@descriptionCreate$bus,使用方式$bus.emit/$bus.on**/importmittfrom'mitt'const$bus=mitt()exportdefault$bus两个子组件都引入mitt.js文件3、......
  • vite如何打包vue3插件为JSSDK
    安装vitenpmcreatevite@latest你还可以通过附加的命令行选项直接指定项目名称和你想要使用的模板。例如,要构建一个Vite+Vue+ts项目,运行:#npm7+,需要添加额外的--:npmcreatevite@latestmy-vue-app----templatevue-ts查看create-vite以获取每个模板的更多细......
  • QListWidget(IconMode)
    #include"widget.h"#include<QHBoxLayout>#include<QListWidgetItem>Widget::Widget(QWidget*parent):QWidget(parent){resize(600,400);p_ListWidget=newQListWidget(this);p_ListWidget->setViewMode(QListView::IconMode);......
  • 锋哥写一套前后端分离Python权限系统 基于Django5+DRF+Vue3.2+Element Plus+Jwt 视频
    大家好,我是java1234_小锋老师,最近写了一套【前后端分离Python权限系统基于Django5+DRF+Vue3.2+ElementPlus+Jwt】视频教程,持续更新中,计划月底更新完,感谢支持。视频在线地址:打造前后端分离Python权限系统基于Django5+DRF+Vue3.2+ElementPlus+Jwt视频教程(火爆连载更新中......
  • QListWidget
    #include"widget.h"#include<QListWidgetItem>#include<QAction>#include<QDebug>Widget::Widget(QWidget*parent):QWidget(parent){resize(300,400);p_ListWidget=newQListWidget(this);p_ListWidget->setFixedWidth......
  • VUE3新特征
    一、支持组合式api1.1、setup()程序的入口        在Vue3中,setup() 函数是一个新的组件选项,作为使用CompositionAPI的入口点。这个函数是在组件被创建之前被调用,它是 beforeCreate 和 created 生命周期钩子之前被执行的地方。它使得逻辑复用和代码组织变......
  • 10个 Vue3 精华知识点,你知道几个?
    本文不适合Vue初学者,如果你是Vue2迁移者或者是准备面试的话,那么本文肯定很适合你,废话不多说Vue2和Vue3有什么区别对Vue3的了解/Vue3是怎么得更快的?新增了三个组件:Fragment支持多个根节点、Suspense可以在组件渲染之前的等待时间显示指定内容、Teleport......
  • Leetcode 2453. Destroy Sequential Targets | rust 实现
    题解问题描述给定一个整数数组nums和一个整数space,我们需要找到一个目标值,使得该目标值在nums中的出现次数最多。如果有多个目标值出现次数相同,则返回最小的目标值。解题思路哈希表统计:使用哈希表map来统计每个seed%space的出现次数,题干中给出的等式等价为nums[n......
  • vue3 使用 codemirror 实现yaml文件的在线编辑
    vue3使用codemirror实现yaml文件的在线编辑1.使用情形2.插件下载3.封装yaml编辑器组件4.父组件使用5.js-yaml使用6.备注1.使用情形需要对yaml文件进行在线编辑,并且进行基础格式验证2.插件下载vue-codemirror在线代码编辑器插件js-yaml用于转换jso......