在 vue3 / quasar2 中访问 $route

Posted

技术标签:

【中文标题】在 vue3 / quasar2 中访问 $route【英文标题】:access to $route in vue3 / quasar2 【发布时间】:2021-12-14 10:56:22 【问题描述】:

我正在使用带有 API 组合的 Quasar,但我遇到了问题。

我只想从当前路由中获取参数,所以在 onMounted 中,我尝试使用 this.$route.params,但我总是在控制台中得到 "this is undefined"

// src/pages/Level.vue

import  ref, onMounted, computed  from "vue";
import  useStore  from 'vuex'
import  useQuasar  from 'quasar';

export default 
  name: "LevelPage",
  setup () 
    const $q = useQuasar();
    const $store = useStore();
    const level = ref(null);

    onMounted(()=> 
      console.log(this.$route.params)
    );

    return 
      level,
    
  ,

;

每次我在设置中使用它时都会遇到相同的错误。

所以一定有一些我没有得到的东西。你能帮帮我吗?

【问题讨论】:

【参考方案1】:

我认为你在 Level.vue 中寻找https://v3.vuejs.org/guide/composition-api-provide-inject.html#mutating-reactive-properties:

import  provide  from 'vue';

export default 
  setup() 
    provide('appName', 'vue3')
  
 

然后在您要访问此变量的任何子组件中,将其注入:

import  inject  from 'vue'

export default 
  setup() 
    const appName = inject('appName');
  

import  useRoute  from 'vue-router'

export default 
  setup() 
    const route = useRoute()

    onMounted(() => 
      const id = route.params.id
    )
  

【讨论】:

非常感谢@PalelPratik。第二个解决方案正是我想要的。

以上是关于在 vue3 / quasar2 中访问 $route的主要内容,如果未能解决你的问题,请参考以下文章

Vue 3 - 访问路由器视图实例以调用子方法

vuex 错误 - 不要在突变处理程序之外改变 vuex 存储状态

在 vue3 中是不是可以访问子组件槽中的根 DOM 元素?我正在尝试在 vue3 中使用第 3 方库(sortablejs)

访问 Vue3 全局组件

如何在 Vue3 的 js 文件中访问 Vue 实例?

如何在 Vue3 中使用数组访问反应对象内的数据?