当前位置: 首页 > news >正文

前端流行框架Vue3教程:18. _组件数据传递

透传 Attributes

透传attribute指的是传递给一个组件,却没有被该组件声明为propsemitsattribute或者v-on事件监听器。最常见的例子就是class、style和id
当一个组件以单个元素为根作渲染时,透传的attribute会自动被添加到根元素上


透传 Attributes 是 Vue 的一个特性,允许父组件传递任意属性到子组件上,而无需显式声明。这在封装可复用的组件时非常有用。

步骤 1: 创建子组件

创建一个名为 AttrComponents.vue 的子组件,并定义一个模板部分:

<template><!--  必须是唯一元素  如果多了其他元素 就不生效  比如<p><h2>等--><h3>透传属性</h3>
</template>

这个组件没有显式声明任何 props 或其他属性处理逻辑。

步骤 2: 在父组件中使用子组件

在你的主组件 App.vue中导入并注册子组件 AttrComponents

<script>
import AttrComponents from "./components/AttrComponents.vue"export default {components: {AttrComponents}
}
</script><template><AttrComponents class="attr-container"/>
</template><style>
.attr-container {color: red;
}
</style>

在这个例子中,我们通过 class="attr-container" 将样式类传递给子组件。

步骤 3: 使用透传的属性

当子组件接收到这些属性时,它们会自动应用到子组件的根元素上。在上面的例子中,class="attr-container" 被应用到了 <h3> 元素上,因此 <h3> 的文字颜色将会是红色。
在这里插入图片描述

注意事项
  • 透传的属性会直接绑定到组件的根元素上。

  • 如果你在子组件中需要对属性进行更复杂的处理,可以使用 props显式声明它们。

  • 如果你不希望某些属性被自动绑定,你可以使用inheritAttrs选项来控制。

    <template><!--  必须是唯一元素  如果多了其他元素 就不生效  比如<p><h2>等--><h3>透传属性</h3>
    </template>
    <script> 
    export default {inheritAttrs:false
    }
    </script>
    

这样你就完成了一个简单的透传 Attributes 的使用示例。

但这个在实际工作中不常用的,本章只做了解即可。

http://www.xdnf.cn/news/490609.html

相关文章:

  • 关于“集合框架底层原理”的一些问题
  • Ceisum 展示——智能巡检制作
  • Vue3封装公共图片组件
  • 深入探索 OpenSPG:下一代知识图谱构建与推理框架
  • Java(基础) day01 初识Java
  • 职教实训室中的写实数字人:技术与应用方案
  • 遇到Linux系统网络连接丢包的问题如何解决?
  • 54. 螺旋矩阵
  • redis缓存实战
  • 地球系统模式(CESM)实践技术应用
  • Ubuntu系统安装docker仓库教程
  • C#学习教程(附电子书资料)
  • Excel MCP: 自动读取、提炼、分析Excel数据并生成可视化图表和分析报告
  • day 25
  • Vue 2.0学习
  • 播放进度条小组件
  • 如何借助iPaaS集成平台做好API 版本管理
  • 记录一次vue项目页面内嵌iframe页面实现跨域上传和下载附件的功能
  • PT2031K单触控单输出触摸IC
  • UI自动化测试中,一个完整的断言应所需要考虑的问题
  • 基于SpringBoot的房屋租赁管理系统
  • 有什么软件系统可以高效管理工地现场物资材料?
  • C语言—指针4
  • 【Manim】使用manim画一个高斯分布的动画
  • Java【13_2】多态、根父类
  • 【已解决】Parsing error: No Babel config file detected for E:\
  • MCP概述及MCP Server的使用和实现(谷歌ADK使用MCP Server)
  • 如何在 Windows 上安装类似 Synaptic 的 Chocolatey GUI 包管理器
  • 哈希表的实现02
  • java18