假设有如下组件:
Vue.component({
name:'test',
props:['objectSample']
});
当这样向组件传递数据时:
<test :objectSample="myObject"/>
这时使用 Vue devtools 可以看到,假如传入对象 myObject 中有一个属性 a,那么在组件模板中想插入 a 的值时必须使用{{objectSample.myObject.a}}
才行。
问题在于,为什么不能直接使用{{objectSample.a}}
来访问传入这个 prop 中的对象的属性呢? prop 的实现机制不是把传入的对象赋给 objectSample 这个对象吗?
我觉得这个问题值得讨论的原因是,{{objectSample.myObject.a}}
这样的用法让组件和组件的使用方式之间产生了强耦合。假如给 objectSample 这个 prop 传入一个名为anotherObject
的对象,即使它也有一个 a 属性,在模板中使用这个属性值也必须修改模板。这很可能会带来额外的命名以及文档方面的工作。
请问如何看待这种耦合用法?还是说我对 prop 的理解存在偏差呢?谢谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.