vue3在自定义hooks中使用useRouter报错的解决方案

 更新时间:2022年08月01日 15:58:01   作者:疯喵喵  
这篇文章主要介绍了vue3在自定义hooks中使用useRouter报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

自定义hooks中使用useRouter报错

随着vue3的更新,vue-router也更新到了4.x

useRouter

相当于vue2的this.$router全局的路由实例,是router构造方法的实例

useRoute

相当于vue2的this.$route表示当前激活的路由的状态信息,包含了当前 URL 解析得到的信息,还有 URL 匹配到的 route路由记录

但是在一次使用中发现

import { useRoute, useRouter } from "vue-router"

useRoute, useRouter必须写到setup中,详见vue-next-router.强行在函数中使用这两会报undefined,导致无法获取路由数据和路由方法

那么想要在自定义hooks中使用路由怎么办呢?

经过摸索,可以直接从路由引入路由对象

// import { useRoute, useRouter } from "vue-router"
import Vrouter from "@/router"
 
// const router = useRouter();
// const route = useRoute();
 
const route = Vrouter.currentRoute.value
const router = Vrouter

监测当前路由同理

eg:

watch(() => Vrouter.currentRoute.value.query,
    (query) => {
      ListParams.value = Object.assign(params,query)
      res.value = handleParams()
    })

注意:千万别直接监测整个router对象 

使用Vue.use()报错“Cannot read property ‘use‘ of undefined”

问题:在学习Vue 3的时候,发现以下代码报错

错误信息为:Cannot read property 'use' of undefined

import Vue from 'vue'
import router from './router'
Vue.use(router)

原因

Vue.use()是Vue 2安装插件的方式

在Vue 3中,import Vue from 'vue'并不能导出”vue“这个包

Vue 3使用createApp(App) 返回应用实例

正解

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • vue + elementUI实现省市县三级联动的方法示例

    vue + elementUI实现省市县三级联动的方法示例

    这篇文章主要介绍了vue + elementUI实现省市县三级联动的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • 使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)

    使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)

    这篇文章主要介绍了使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件 ,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • Vue 实现复制功能,不需要任何结构内容直接复制方式

    Vue 实现复制功能,不需要任何结构内容直接复制方式

    今天小编就为大家分享一篇Vue 实现复制功能,不需要任何结构内容直接复制方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Django+Vue实现WebSocket连接的示例代码

    Django+Vue实现WebSocket连接的示例代码

    这篇文章主要介绍了Django+Vue实现WebSocket连接的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • 在Vue应用中处理404页面的解决方法

    在Vue应用中处理404页面的解决方法

    在现代的单页面应用(SPA)中,404错误是不可避免的,当用户访问一个无效的路由时,我们希望能够提供一个友好的404页面,以改善用户体验,在这篇博客中,我们将探讨如何在Vue应用中处理404页面,并提供示例代码帮助你更好地理解这一过程,需要的朋友可以参考下
    2024-12-12
  • Vue导出el-table表格为Excel文件的两种方式

    Vue导出el-table表格为Excel文件的两种方式

    在开发过程中,我们经常需要将表格数据导出为 Excel 文件,大多数情况下,由后端处理即可,但是当数据量不大、需要快速响应用户操作、或者数据已经在前端进行处理和展示时,前端该如何实现呢,本文将介绍两种方法,需要的朋友可以参考下
    2024-09-09
  • vue-i18n实现中英文切换的方法

    vue-i18n实现中英文切换的方法

    这篇文章主要介绍了vue-i18n实现中英文切换的方法,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • VUE element上传动态设置action路径和参数的坑及解决

    VUE element上传动态设置action路径和参数的坑及解决

    这篇文章主要介绍了VUE element上传动态设置action路径和参数的坑及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Vue自定义可以选择日期区间段的日历插件

    Vue自定义可以选择日期区间段的日历插件

    这篇文章主要为大家详细介绍了Vue自定义可以选择日期区间段的日历插件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Vue Echarts简易实现仪表盘

    Vue Echarts简易实现仪表盘

    这篇文章主要为大家详细介绍了Vue Echarts实现仪表盘案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-12-12

最新评论