VueJS - 函数的结果作为 Prop 的默认值

VueJS - Result of a function as default value for a Prop

使用带有 class 组件和 vue-property-decorator 的 VueJS 我正在尝试编写一个带有默认为新 uuid 的 uuid Prop 的 Vue 组件(使用 npm 包 uuid) 未提供时:

import {Component, Prop, Vue} from 'vue-property-decorator';
import * as uuid from 'uuid';

@Component
export default class BlockComponent extends Vue {
  @Prop({default: uuid.v1()}) uuid!: string;
}

因此,当在实例化时给出服务器提供的 uuid 时,它会在前端使用,如果不是,则意味着它是一个新元素,应该为该组件生成一个新的 uuid。我在这段代码中遇到的问题是,我最终会生成多个具有相同 uuid(但不是全部)的组件。

根据documentation,您可以使用构造函数,因此可以传递函数。

@Prop(options: (PropOptions | Constructor[] | Constructor) = {})