首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue类组件:如何自定义选项

Vue类组件:如何自定义选项
EN

Stack Overflow用户
提问于 2021-07-04 08:10:15
回答 1查看 815关注 0票数 0

目前我使用Vue 2和类型记录,但是我不能向组件中添加选项

代码语言:javascript
复制
<script lang="ts">
import { Component, Vue } from "vue-property-decorator";
import HelloWorld from "@/components/HelloWorld.vue"; // @ is an alias to /src

@Component<Home>({
  components: {
    HelloWorld,
  },

  middleware: "yyy",
})
export default class Home extends Vue {
  mounted() {
    console.log(this.middleware);
  }
}
</script>

我搞不清楚!

我发现了一个类似的问题,我试过了,但仍然没有结果。

扩展组件选项

我的src\shims-vue.d.ts

代码语言:javascript
复制
declare module "*.vue" {
  import Vue from "vue";
  export default Vue;
}
declare module "vue/types/vue" {
  interface Vue {
    middleware?: string;
  }
}

declare module "vue/types/options" {
  interface ComponentOptions<V extends Vue> {
    middleware?: string;
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-04 09:12:46

您的类型声明缺少了Vue的导入。

代码语言:javascript
复制
// shims-vue.d.ts
import Vue from 'vue' 

declare module "vue/types/options" {
  interface ComponentOptions<V extends Vue> {
    middleware?: string;
  }
}

要从组件中访问该选项,请使用this.$options.middleware (而不是this.middleware):

代码语言:javascript
复制
export default class Home extends Vue {
  mounted() {           
    console.log(this.$options.middleware);
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68242818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档