V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SystemLight
V2EX  ›  Vue.js

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

  •  
  •   SystemLight ·
    SystemLight · 2020-11-16 16:51:50 +08:00 · 2667 次点击
    这是一个创建于 1493 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    8 条回复    2020-11-19 10:03:10 +08:00
    xclin163
        1
    xclin163  
       2020-11-16 16:55:11 +08:00
    <Child v-bind="$props" />
    TsubasaHanekaw
        2
    TsubasaHanekaw  
       2020-11-16 16:57:35 +08:00
    v-bind="$props" v-on="$listeners"
    geylnu
        3
    geylnu  
       2020-11-16 17:10:23 +08:00
    默认就会给根元素加上父组件传来的属性
    ryncv
        4
    ryncv  
       2020-11-16 17:26:55 +08:00
    @TsubasaHanekaw 一个小 tips: 这种方式如果绑定有 v-model 需要另外处理 https://github.com/vuejs/vue/issues/7042
    user8341
        5
    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
        6
    lemonnTr  
       2020-11-17 09:49:22 +08:00
    @ryncv 刚看这个 issue 还有点疑惑为啥 v-model 不能绑定,后来想想我都是直接使用 <Child v-bind="$attrs" v-on="$listeners" />,而不是单独使用 v-on="$listeners"。
    Sapp
        7
    Sapp  
       2020-11-17 14:05:29 +08:00
    vue 默认就会这样,然而这是个大坑。
    JayLin1011
        8
    JayLin1011  
       2020-11-19 10:03:10 +08:00
    1. $attrs;
    2. provide.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1817 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:24 · PVG 00:24 · LAX 08:24 · JFK 11:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.