0

使用 Vue 类组件,如何获取计算变量的值?尝试使用this.bar会报错:Property 'bar' does not exist on type '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>
4

3 回答 3

1

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

你应该改变你所拥有的

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

@Component  
export default class Foo extends Vue {
  get bar(): boolean {
    return true;
  }
  qux() {
    if (this.bar) {
        baz();
    }
  }
}
</script>

有关使用 Vue 类组件的更多信息,请查看这篇文章

于 2020-09-13T09:17:34.590 回答
0

为什么你不想使用getter?

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

这被转换为计算属性

于 2020-09-03T10:34:20.277 回答
0

如果你使用 vue-property-decorator 一切都进入扩展类。

普通 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
  }
}
于 2020-09-13T08:35:39.583 回答