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

Posted

技术标签:

【中文标题】VueJS - 函数的结果作为 Prop 的默认值【英文标题】:VueJS - Result of a function as default value for a Prop 【发布时间】:2020-12-07 15:59:42 【问题描述】:

将 VueJS 与类组件和 vue-property-decorator 一起使用我正在尝试编写一个带有 uuid Prop 的 Vue 组件,该属性在未提供时默认为新的 uuid(使用 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(但不是全部)。

【问题讨论】:

使用函数()=> uuid.v1() 太棒了!谢谢 !我不知道我可以传递一个返回字符串作为字符串属性默认值的函数。我最终这样做了:default: uuid.v1 它可以工作 @Estradiaz 愿意写一个简短的答案,以便我可以将其设置为已解决? 【参考方案1】:

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

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

【讨论】:

以上是关于VueJS - 函数的结果作为 Prop 的默认值的主要内容,如果未能解决你的问题,请参考以下文章

VueJS 使用 prop 作为数据属性值

VueJS 使用 prop 作为数据属性值

使用当前 vue 组件的方法作为默认 prop 值

在 VueJS 中从 Prop 和 Prop 值创建类

如何在VueJS中将动态鼠标滚动值作为道具传递

React prop使用和传入限制、默认值