父组件与子组件的属性透传

news/2025/2/12 21:54:41/

透传是vue中一种特性,官方的解释是:“透传 attribute”指的是传递给一个组件,却没有被该组件声明为 props 或 emits 的 attribute 或者 v-on 事件监听器。最常见的例子就是 classstyleid。这句话解释过来就是一些不被prop定义的属性直接添加到子组件上的时候,子组件是可以获取到的,只不过获取的方式是通过方法获取的,下面我们展开说一下

1、透传的属性只会直接传给单根节点的组件,如果子组件不是一个根节点,那么透传属性会直接失效,并且警告 

举列:

我有一个父组件App.vue

<template><div><!--在子组件中添加两个属性 id和class,如果Navbar只存在一个单根节点的元素,并且Navbar中没有用props来接收id和class,那么这个di和class,就会传递给Navbar节点的根节点--><Navbar  id="box" class="aaa" ></Navbar> </div>
</template>
<script>
import Navbar from "./components/Navbar.vue" //导入Navbar组件模板
export default{data(){},components:{Navbar, //注册局部组件Navbar:也可以写成Navbar:Navbar}
}
</script>

案列1:

子组件

<template><!-- 此组件只有一个div的根节点(注意:<template></template>不是节点,它不会显示在界面上的) --><!-- 所以从父组件传递过来的id,class,style就会被此根节点接收 --><div><button>提交</button></div>
</template>

查看F12元素可以体现

案列2:

如果子组件存在两个根组件的情况下则透传会被失效

<template><!-- 注意:<template></template>不是节点,它不会显示在界面上的 --><!-- 因为子组件不是一个根节点,它有两个根节点d,透传属性会直接失效,并且警告 --><div> <!--根节点1--><button>提交</button></div><div> </div><!--根节点2-->
</template>

查看F12元素可以体现

 案列3:

<template><!-- 此组件只有一个div的根节点(注意:<template></template>不是节点,它不会显示在界面上的) --><!-- 因为script中用props接收了class属性,但是没接收id属性,所以id属性会被透传到此根节点 --><div> <!--根节点1--><button>提交</button></div>
</template>
<script>
export default{
props:["class"]}
</script>

查看F12元素可以体现

案列4:

 透传过去的属性如果和子组件上的命名重复了,会以子组件本身的属性为主(id)
透传过去的属性如果和子组件上的属性重复了,会直接添加到属性值的后面(style,class)

<template><!-- 此组件只有一个div的根节点(注意:<template></template>不是节点,它不会显示在界面上的) --><!-- 透传过去的属性如果和子组件上的命名重复了,会以子组件本身的属性为主 --><!-- 透传过去的属性如果和子组件上的属性重复了,会直接添加到属性值的后面 --><div id="wowo" class="bbb"><button>提交</button></div>
</template>

查看F12元素可以体现


http://www.ppmy.cn/news/1165414.html

相关文章

solidworks 2024新功能之-打造更加智能的工作 硕迪科技

SOLIDWORKS 2024 的新增功能 SOLIDWORKS 的每个版本都致力于改进您的工作流程&#xff0c;使您常用的工具尽可能快速高效地运作。此外&#xff0c;SOLIDWORKS 2024 可以通过量身定制的解决方案扩展您的工具集&#xff0c;并使您能够通过 Cloud Services 轻松将您的设计数据连接…

视频SDK开发,多平台SDK快速接入

随着科技的不断发展&#xff0c;视频已经成为了企业业务中不可或缺的一部分。无论是在线教育、企业培训还是产品展示&#xff0c;视频都发挥着至关重要的作用。为了满足企业对视频应用的需求&#xff0c;美摄视频SDK应运而生&#xff0c;为企业提供了一站式的视频解决方案。 一…

Python高频面试题——如何在字符串中删除指定字符,掌握strip()、replace()和re.sub ()正确使用方法!

关于python删除字符串是面试python测试开发工程师的一个经典问题。问题很简单&#xff0c;但是一下子就能测试出来被面试者是否能够熟练的进行python相关编码工作&#xff01; 对于有些临时抱佛脚的同学来讲&#xff0c;一看删除&#xff0c;很自然就说用remove 、del相关方法…

深入探究音视频开源库 WebRTC 中 NetEQ 音频抗网络延时与抗丢包的实现机制

目录 1、引言 2、什么是NetEQ&#xff1f; 3、NetEQ技术详解 3.1、NetEQ概述 3.2、抖动消除技术 3.3、丢包补偿技术 3.4、NetEQ概要设计 3.5、NetEQ的命令机制 3.6、NetEQ的播放机制 3.7、MCU的控制机制 3.8、DSP的算法处理 3.9、DSP算法的模拟测试 4、NetEQ源文件…

软考-物理安全与环境安全技术

本文为作者学习文章&#xff0c;按作者习惯写成&#xff0c;如有错误或需要追加内容请留言&#xff08;不喜勿喷&#xff09; 本文为追加文章&#xff0c;后期慢慢追加 by 2023年10月 物理安全概念 广义的物理安全则指由硬件&#xff0c;软件&#xff0c;操作人员&#xff…

QT里面实现文件对话框选择的几种方式

QT里面写对话选择框的方式有以下几种&#xff1a; 第一种&#xff1a;可以选择多个文件的方式 // 设置文件选择对话框的接受模式为多选模式QFileDialog dialog;dialog.setFileMode(QFileDialog::ExistingFiles);// 设置初始目录dialog.setDirectory("/home");// 设…

react-router-dom v6版本实现Tabs路由缓存切换

目录 文章目录 概要 效果 完整代码 概要 摆了半年摊&#xff0c;好久没写代码了&#xff0c;今天有人问我怎么实现React-Router-dom类似标签页缓存。后面看了一下router的官网。很久以前用的是react-router v5那个比较容易实现。v6变化挺大&#xff0c;但了解react的机制和rea…

uniapp(uncloud) 使用生态开发接口详情5(云公共模块)

1.uniCloud官网 云对象中云公共模块: 网站: https://uniapp.dcloud.net.cn/uniCloud/cf-common.html // 官网介绍 cloudfunctions├─common // 云函数公用模块目录| └─hello-common // 云函数公用模块| ├─package.json| └─index.js // 公用模块代码&#xff0…