【问题标题】:Vue Class Component: How to custom optionsVue 类组件:如何自定义选项
【发布时间】:2021-09-15 10:46:20
【问题描述】:

目前我使用 Vue 2 和 Typescript,但我无法向组件添加选项

<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>

我没有定义!

我发现了1个类似的问题,我试过了还是没有结果

Extend Component options

我的 src\shims-vue.d.ts

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;
  }
}

【问题讨论】:

    标签: typescript vue.js vuejs2 vue-class-components


    【解决方案1】:

    您的类型声明缺少Vue 的导入:

    // 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):

    export default class Home extends Vue {
      mounted() {           ?
        console.log(this.$options.middleware);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-06-04
      • 2021-05-15
      • 2020-12-20
      • 2021-07-26
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 2020-08-26
      相关资源
      最近更新 更多