Vue.js 如何访问计算的状态变量?

Vue.js 如何访问计算的状态变量?,vue.js,vue-component,vue-class-components,vue-property-decorator,Vue.js,Vue Component,Vue Class Components,Vue Property Decorator,使用Vue类组件,如何获取计算变量的值?试图使用此.bar时出现错误:属性“bar”在类型“Vue”上不存在。 <script lang="ts"> import { Vue, Component } from "vue-property-decorator"; @Component({ computed: { bar() { return true; }, },

使用Vue类组件,如何获取计算变量的值?试图使用此.bar时出现错误:
属性“bar”在类型“Vue”上不存在。

<script lang="ts">
import { Vue, Component } from "vue-property-decorator";

@Component({
    computed: {
        bar() {
            return true;
        },
    },
    methods: {
        qux() {
            // How to get the value of bar here?
            if (this.bar) {
                baz();
            }
        },
    },
})
export default class Foo extends Vue {}
</script>

从“Vue属性装饰器”导入{Vue,Component};
@组成部分({
计算:{
bar(){
返回true;
},
},
方法:{
qux(){
//如何在这里获得bar的值?
如果(本条){
baz();
}
},
},
})
导出默认类Foo扩展Vue{}

您不想使用getter的原因是什么

@Component({})
export default class Foo extends Vue {
  get bar() { return true }
}

如果您使用vue属性装饰器,这将转换为计算属性

,所有内容都将转到扩展类

正常Vue:

export default {
  data(){
    return {}
  },
  computed: {
    bar() {
        return true;
    },
  },
  methods: {
    qux() {
        if (this.bar) {
            baz();
        }
    }
  }
}
打字稿也一样

@Component({})

export default class Foo extends Vue {
  get bar() {
    return true;
  }

  private qux() {
    if (this.bar) {
      this.baz();
    }
  }

  private baz() {
    //do smth
  }
}

这是因为您没有使用正确的语法

你应该改变你对这个的看法


从“Vue属性装饰器”导入{Vue,Component};
@组成部分
导出默认类Foo扩展Vue{
get bar():布尔值{
返回true;
}
qux(){
如果(本条){
baz();
}
}
}