18910140161

Vue中Prop默认值为什么要为工厂函数的形式返回?

顺晟科技

2021-06-19 08:05:38

261

原文说Object与数组类型default需要用一个函数返回,但是Type可以为Function,Function不也是Object吗?Function类型得default直接default:()=>{}就行了,为啥不需要default:()=>()=>{}


顺晟科技:

这和data要返回函数是一个意思。因为object 和数组都是引用类型,地址(指针)是一样的。必须返回一个函数,才能使用不同的地址,才能区分开不同的组件。

为啥父组件主动传递Object与数组类型值给子组件prop没事呢

有人说是为了不影响父组件,可是你用不用默认值修改引用类型得prop都会改变父组件得啊,文档中得Object不知道到底包不包括Function,关于子组件修改Prop这一段,原文说Object与Array会影响父组件,然而我想Function也是引用类型同样也会影响父组件,而关于prop默认值却只是Object与Array需要用工厂函数返回,不然报错,Function类型却可以直接default:()=>{}

谢谢大佬解答

父组件的object 地址在父组件里面,不在组件的props里面。传递进去,也是把父组件的地址传递进去,不会影响其他父组件。属性默认值的地址,在组件的属性里面,function可以保证每次都是新的地址;直接返回object的话,每次都是同一个地址。

我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航