$attrs

这篇博客探讨了Vue.js中的$attrs概念,它包含了父组件中未被声明为prop的属性绑定(除了class和style)。当组件没有声明prop时,$attrs用于将这些属性传递给内部组件。文章讨论了在组件层级深入的数据传递问题,列举了常见的组件间通信方式,并提供了通过$attrs进行数据传递的示例,展示了如何在孙子组件中获取并绑定父组件的数据。
摘要由CSDN通过智能技术生成

一、概念

vue官网定义如下:

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

二、用处

vue中一个比较令人烦恼的事情是属性只能从父组件传递给子组件。这也就意味着当你想向嵌套层级比较深组件数据传递,只能由父组件传递给子组件,子组件再传递给孙子组件。

常用的几个组件之间数据传递的方法有如下几个:

1、通过 props 的方式向子组件传递(父子组件)

2、vuex 进行状态管理

3、非父子组件的通信传递 Vue Event Bus,使用Vue的实例,实现事件的监听和发布,实现组件之间的传递

4、$attrs的方式

三、示例

在vue中新建三个组件,分别为父组件(Father),子组件(Son)和孙子组件(Grandson)。
在这里插入图片描述

父组件(Father)的代码如下:

<template>
    <div style="background: aquamarine">
        <div>Here is Father</div>
        <son :sonAge=20 :grandsonAge=10
  • 11
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值