如何访问计算状态变量?
How to access computed state variable?
使用Vue Class组件,如何获取计算变量的值?尝试使用 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>
您不想使用 getter 的原因是什么?
@Component({})
export default class Foo extends Vue {
get bar() { return true }
}
这被转换为计算属性
如果您使用 vue-property-decorator,一切都会扩展 class。
普通 Vue:
export default {
data(){
return {}
},
computed: {
bar() {
return true;
},
},
methods: {
qux() {
if (this.bar) {
baz();
}
}
}
}
Typescript 中相同
@Component({})
export default class Foo extends Vue {
get bar() {
return true;
}
private qux() {
if (this.bar) {
this.baz();
}
}
private baz() {
//do smth
}
}
那是因为你没有使用正确的语法。
你应该把你所拥有的改成这个
<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 Class 组件的更多信息,请查看此 article
使用Vue Class组件,如何获取计算变量的值?尝试使用 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>
您不想使用 getter 的原因是什么?
@Component({})
export default class Foo extends Vue {
get bar() { return true }
}
这被转换为计算属性
如果您使用 vue-property-decorator,一切都会扩展 class。
普通 Vue:
export default {
data(){
return {}
},
computed: {
bar() {
return true;
},
},
methods: {
qux() {
if (this.bar) {
baz();
}
}
}
}
Typescript 中相同
@Component({})
export default class Foo extends Vue {
get bar() {
return true;
}
private qux() {
if (this.bar) {
this.baz();
}
}
private baz() {
//do smth
}
}
那是因为你没有使用正确的语法。
你应该把你所拥有的改成这个
<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 Class 组件的更多信息,请查看此 article