vue 如何将父组件接收的 props 直接全部扔给子组件?

2020-11-16 16:51:50 +08:00
 SystemLight

在 react 中可以直接使用 <Child {...props}/>这样的方式,在 vue 中应该怎样实现呢?

2588 次点击
所在节点    Vue.js
8 条回复
xclin163
2020-11-16 16:55:11 +08:00
<Child v-bind="$props" />
TsubasaHanekaw
2020-11-16 16:57:35 +08:00
v-bind="$props" v-on="$listeners"
geylnu
2020-11-16 17:10:23 +08:00
默认就会给根元素加上父组件传来的属性
ryncv
2020-11-16 17:26:55 +08:00
@TsubasaHanekaw 一个小 tips: 这种方式如果绑定有 v-model 需要另外处理 https://github.com/vuejs/vue/issues/7042
user8341
2020-11-16 17:35:21 +08:00
@TsubasaHanekaw

vue 3 好像有不向下兼容的改动(breaking change)。

v3.vuejs.org/guide/migration/listeners-removed.html#_2-x-syntax
lemonnTr
2020-11-17 09:49:22 +08:00
@ryncv 刚看这个 issue 还有点疑惑为啥 v-model 不能绑定,后来想想我都是直接使用 <Child v-bind="$attrs" v-on="$listeners" />,而不是单独使用 v-on="$listeners"。
Sapp
2020-11-17 14:05:29 +08:00
vue 默认就会这样,然而这是个大坑。
JayLin1011
2020-11-19 10:03:10 +08:00
1. $attrs;
2. provide.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/725860

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX