// 导致报错的代码
props: {
propData: {
type: Object, // 或者Array
default: {} // 或者[]
}
}
对于默认值是Object或Array类型的Vue组件的prop,你必须使用一个工厂函数(factory function)来返回默认值,而不是直接赋值。这是因为JavaScript中的对象和数组是引用类型,如果你在default中直接返回一个对象或数组,那么这个默认值将被所有的实例共享,这可能会导致非预期的行为。
// 订正后
props: {
propData: {
type: Object, // 或者Array
default: function () {
return {} // 或者[]
}
}
}
每当propData
的值未被传入时,default
函数将会被调用,返回一个新的空对象(或空数组),这就确保了每个组件实例都有自己独立的默认值。