admin 管理员组

文章数量: 887021


2024年2月19日发(作者:r语言中header是什么意思)

vue props 数组对象默认值

【实用版】

目录

组件 props 数组对象传参的默认值

单向数据流修改 props 数据

prop 不同数据类型设置默认值

props 传值(对象)更新不显示的问题

正文

一、Vue 组件 props 数组对象传参的默认值

在 Vue 组件中,当我们需要接收一个数组或对象类型的 props 参数时,我们需要为它设置一个默认值。如果不设置默认值,将会报错:Invalid

default value for prop。那么如何设置默认值呢?我们可以使用一个工厂函数来返回默认值,如下:

```javascript

export default {

props: {

propsName: {

type: Array,

default: () => {

return [];

},

},

},

第 1 页 共 4 页

};

```

二、Vue 单向数据流修改 props 数据

Vue 的数据流是单向的,所以我们通常的做法是在父组件中通过事件来修改子组件的 props 数据。但是,有没有办法在子组件中直接修改

props 数据呢?答案是有的。我们可以使用`.sync`修饰符来实现这个功能。如下:

```html

```

```javascript

// 子组件

export default {

props: {

arrayData: {

type: Array,

default: [],

},

},

methods: {

updateArrayData(newData) {

第 2 页 共 4 页

this.$emit("update:arrayData", newData);

},

},

};

```

三、Vue prop 不同数据类型设置默认值

当我们在 Vue 组件中设置 props 参数时,不同的数据类型需要设置不同的默认值。比如,对于数字类型的 props,我们可以设置一个默认值为 0:

```javascript

export default {

props: {

propName: {

type: Number,

default: 0,

},

},

};

```

对于字符串类型的 props,我们可以设置一个默认值为空字符串:

```javascript

export default {

props: {

第 3 页 共 4 页

propName: {

type: String,

default: "",

},

},

};

```

四、Vue props 传值(对象)更新不显示的问题

有时候,我们在 Vue 组件中更新 props 传过来的对象数据时,会发现数据并没有被正确更新。这可能是因为我们没有正确地使用`this.$forceUpdate()`方法来强制更新组件。

第 4 页 共 4 页


本文标签: 组件 对象 数组 数据 修改