问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

vue属性透传

发布网友 发布时间:2022-12-28 17:32

我来回答

1个回答

热心网友 时间:2023-01-23 17:11

通过 v-bind="$props" 以及v-bind="$attrs" 实现属性透传

很多时候,我们会写一些嵌套组件,比如 A 的子组件是 B,B 的子组件是 C。这个时候如果 A 传递 props 给 B,B 又得传递 props 给 C,我们经常在 B 传给 C 的时候这么写

<template>

  <child-component :someprop1="someprop1"

                  :someprop2="someprop2"

                  :someprop3="someprop3"

                  :someprop4="someprop4"

                  ...

  />

</template>

这样是很不优雅的,其实你可以直接使用 v-bind: $props

<template>

  <child-component v-bind="$props"/>

</template>

这里我们利用 v-bind 可以传入一个对象的所有 property,类似 v-bind="Obj"。例如,对于一个给定的对象 post

post: {

  id: 1,

  title: 'My Journey with Vue'

}

下面的模板:

<blog-post v-bind="post"></blog-post>

等价于:

<blog-post

  v-bind:id="post.id"

  v-bind:title="post.title"

></blog-post>

这个配合 v-bind="$attrs" 在封装一些组件的时候非常有用,比如实现属性透传。

vm.$attrs 包含了父作用域中不作为 prop 被识别 (且获取) 的 attribute 绑定 (class 和 style 除外)。当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class 和 style 除外),并且可以通过 v-bind="$attrs" 传入内部组件——在创建高级别的组件时非常有用。

比如将上面传递进来的 props 全部绑定到 el-input 中,我们可以在子组件中这么写:

<template>

  <div>

    <el-input v-bind="$attrs" ></el-input>

  </div>

</template>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
锅炉切圆直径调整 为什么我打开excel后是灰色的? 有没有什么值得推荐的投资港股的QDII基金? - 知乎 win10电脑屏幕亮度调不了怎么办 考焊工证具体怎么操作 广汽传祺是丰田技术吗 广汽传祺与广汽丰田有关系吗 怎样才能让不愿写作业的孩子听话? 上初中不写作业不想学习的孩子应该如何管教? 出生在2020年农历七月十二日的宝宝怎么取名有内涵? 多哈回合谈判各方呼吁 cad怎么把类似的块一起更改 汽车轮胎怎么看是不是翻新的? 毕业留言四字成语 云南省2008年高考有量化分吗 大学录取通知书上的照片是什么时候的 采矿工程安全问题及应对措施论文 矿井通风与安全常识性问题 为什么显示器自动关闭后打开不了了? 侠盗猎车圣安地列斯怎么装mod 舍与得的名言 舍与得名言 2018.11月Flutter优质开源项目 民间借贷合同违约金规定有哪些如何违约 PS如何让眼睛变大的更自然 PS怎么把眼睛P大?? ROG M7H主板能支持 SATA NGFF吗 各位大神!求助一个问题,华硕Z77支持NGFF接口? 水电工程—给水管定位开槽 椰蓉小方块的正宗做法,椰蓉小方块怎样做才好吃的做法 厨房水路改造需要注意哪些问题 牛奶椰方块的做法,牛奶椰方块怎么做好吃,牛奶 vue的props的属性名不能用驼峰命名 银行卡异常了为什么还可以充值 数学月考总结怎么写 数学考试总结50字,示例,八下月考 天津方言词语大全,天津方言词语大全 红酒木瓜靓汤的做法有哪些 nba2k23三分大赛在哪 nba2k20国际联赛在哪 NBA2K18手机版有没有三分球大赛和扣篮大赛?怎么参加? 华为手机的镜子怎么打开? 夏天不开空调会怎样? 大衣暗扣怎么缝 如何缝大衣扣子 知道怎么加好友 怎么加好友 DDS686单相电子式电能表第一次看是002951kwh第二次003006KWh,这是我在电表上看的数字,请问用了多少电 吴亚维紫砂壶值得收藏吗 每日艺术 | Self-portrait:自画像2021-8-13 收集微信收款码违法吗 在QQ上对一女生告白,她说你别逗我了,我说没逗你,她说哦我知道了,我说喜不喜欢我没关系,我只是想让你知... 炸鱼如何炸两回