我在Vue中创建了一个项目.JS3和打字脚本.

路由.js

{
    path: "/app/:id",
    name: "Detail",
    component: Detail,
    props: true
  },

应用程序.js

<script lang="ts">

...

onMounted(() => {
      const id = $route.params.id;
      ...
    });

但这会导致一个错误:

"Cannot find name '$route'."

我做错了什么?

推荐答案

Vue路由4.x为此提供了useRoute()美元:

import { useRoute } from 'vue-router'

export default {
  setup() {
    const route = useRoute()

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

demo

Vue.js相关问答推荐

如何将$validator实例注入到使用组合API语法的Vue2.7应用程序中

VUE:带自定义组件的数组输入绑定

处理多张卡片中的按钮

纵横比元素溢出容器

单击 v-data-table 中行中的任意位置并移动到另一个页面

如何 for each 用户分组聊天消息?

Vuetify grid layout - 如何填充网格中元素的高度

VueJS - 将单独的组件加载到 vue 实例中

Vuex:如何等待动作完成?

Webpack 你可能需要一个合适的加载器来处理这个文件类型

CLI 3 - 如何为 CSS/Sass 创建vendor bundle ?

为什么 CSS 关键帧动画在具有范围样式的 Vue 组件中被 destruct ?

如何判断 Vue 组件是否处于活动状态

如何使用 vuex 删除项目?

在 v-for 循环中使用 v-model

我可以修改 Vue.js VNodes 吗?

在手动安装的 vue 组件中使用 vuex

如何将事件绑定到 Vuetify 中的树视图 node ?

异步api调用后如何使用vuex getter

升级到 vue-cli 3 后,HTML 中的空格消失了