我正在建立一个基于Nuxt TypeScript Starter模板的网站。我已经在页面文件夹中创建了动态路由的页面_id.vue,并且希望可以访问TS类中的id属性。我可以通过写在模板中访问它,{{$route.params.id}}
但是当我尝试$route
在类内部引用时,出现错误:
错误TS2304:找不到名称'$ route'。
我正在建立一个基于Nuxt TypeScript Starter模板的网站。我已经在页面文件夹中创建了动态路由的页面_id.vue,并且希望可以访问TS类中的id属性。我可以通过写在模板中访问它,{{$route.params.id}}
但是当我尝试$route
在类内部引用时,出现错误:
错误TS2304:找不到名称'$ route'。
作为一个简单的解决方案,请尝试从vue-router导入路由,如下所示:
<script lang="ts">
import Component from "vue-class-component"
import { Route } from "vue-router"
@Component({})
export default class RoutingExample extends Vue {
created() {
console.log(this.$route) // this should not throw TS errors now
}
}
</script>
我认为其他解决方案将需要您扩展Vue模块,这与您在Vue文档中可以找到的类似。
可以在此仓库中找到更多Vue + TypeScript示例:https : //github.com/jsonberry/vue-typescript-examples
我能够通过获取函数访问route.params,从默认情况下传递给该函数的上下文对象中获取参数:
<script lang="ts">
import Component from "nuxt-class-component"
@Component({})
export default class RoutingExample extends Vue {
fetch ({ store, params }) {
console.log("params:", params.id);
...
}
}
</script>
但需要注意的是,参数只能在该获取挂钩中使用,而不能在其他已创建或已安装的挂钩中使用。所以杰森的答案也是有效的
更好和正确的解决方案,用于nuxtjs项目以查找当前页面的URL或参数