$attrs

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

$listener

    包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="$listeners" 传入内部组件——在创建更高层次的组件时非常有用。

    以上内容参考官网:https://cn.vuejs.org/v2/api/#vm-attrs

直接看使用代码:

 1 在父组件当中,最外层组件2 3 <template>4     <div>5         <Child1 :child1Info="child1" :child2Info="child2" v-on:test1="onTest1" v-on:test2="onTest2">6         </Child1>7     </div>8 </template>9 <script>
10 import Child1 from './child1';
11 export default {
12     data() {
13         return {
14             child1:"hahha",
15             child2:"asdsdasd"
16         };
17     },
18     components: { Child1 },
19     methods: {
20         onTest1(msg) {
21             console.log('test1 running...',msg);
22         },
23         onTest2(msg) {
24             console.log('test2 running',msg);
25         }
26     }
27 };
28 </script>

 1 //在子组件中2 3 <template>4     <div class="child-1">5         <p>在子组件当中:</p>6         <p>props-child1Info: {{child1Info}}</p>7         <p>$attrs: {{$attrs}}</p>8         <hr>9         <!-- Child2组件中能直接触发test的原因在于 B组件调用C组件时 使用 v-on 绑定了$listeners 属性 -->
10         <!-- 通过v-bind 绑定$attrs属性,Child2组件可以直接获取到A组件中传递下来的props(除了child1组件中props声明的) -->
11         <Child2 v-bind="$attrs" v-on="$listeners"></Child2>
12     </div>
13 </template>
14 <script>
15 import Child2 from './child2';
16 export default {
17     props: ['child1Info'],
18     data() {
19         return {};
20     },
21     components: { Child2 },
22     mounted() {
23         this.$emit('test1','嘻嘻');
24     }
25 };
26 </script>

 1 //在孙子组件当中:2 3 4 <template>5     <div class="child-2">6         <p>在最里层组件当中child2:</p>7         <p>props-child2Info: {{child2Info}}</p>8         <p> $attrs 的值: {{$attrs}}</p>9         <hr>
10     </div>
11 </template>
12 <script>
13 export default {
14     props: ['child2Info'],
15     data() {
16         return {};
17     },
18     mounted() {
19         this.$emit('test2','哈哈');
20     }
21 };
22 </script>

转载于:https://www.cnblogs.com/baoshuyan66/p/11265854.html

Vue 新增的$attrs与$listeners的详解相关推荐

  1. vue 生命周期的11中方法详解

    vue 生命周期的十一中方法详解 vue 生命周期的定义 vue实例 从创建到销毁,也就是说从创建 -> 初始化 数据-> 编译模版 -> 挂载Dom -> 渲染 更新 -&g ...

  2. vue build text html,Vue中v-text / v-HTML使用实例代码详解_放手_前端开发者

    废话少说,代码如下所述: /p> 显示123 /p> 补充:vuejs {{}},v-text 和 v-html的区别 {{message}} let app = new Vue({ el ...

  3. 移动端html5手写板,Vue+canvas实现移动端手写板步骤详解

    这次给大家带来Vue+canvas实现移动端手写板步骤详解,Vue+canvas实现移动端手写板的注意事项有哪些,下面就是实战案例,一起来看一下. 清除 保存 Canvas画板 var draw; v ...

  4. 泛微oa明细表添加按钮_泛微OA 新增功能:表格单建模详解.doc

    泛微OA 新增功能:表格单建模详解 Weaver Software中国上海耀华支路39弄9号(通耀路济明路路口) Weaver Software 中国上海耀华支路39弄9号(通耀路济明路路口) 邮政编 ...

  5. vue的父子组件之间的通信详解

    vue的父子组件之间的通信详解 一.父组件给子组件传值 父组件引入子组件,并对子组件进行监听 <!-- 父组件 --><template><div><h1&g ...

  6. 巅峰战舰今日服务器全部维护,巅峰战舰12月7日更新维护公告 12.7新增玩法和舰船属性调整详解[图]...

    类型:策略卡牌 大小:827.38MB 评分:10 平台: 巅峰战舰今天进行了临时维护更新,具体更新了什么内容?估计小伙伴们不太清楚,没关系,下面是小麦整理出来的12.7新增玩法和舰船属性调整详解,希 ...

  7. vue inheritAttrs、$attrs和$listeners使用

    inheritAttrs.$attrs和$listeners使用场景: 组件传值,尤其是祖孙组件有跨度的传值. (1)inheritAttrs 属性说明:https://cn.vuejs.org/v2 ...

  8. [vue] 说下$attrs和$listeners的使用场景

    [vue] 说下attrs和attrs和attrs和listeners的使用场景 <template><el-button v-on="$listeners" v ...

  9. Vue-- $attrs与$listeners的详解

    vm.$attrs 2.4.0新增 类型 { [key: string]: string } 只读 详细 包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style ...

最新文章

  1. 原360首席科学家颜水成正式加入依图科技,任首席技术官
  2. python服务器同步
  3. PRML-github code使用两个小攻略
  4. python读取excel写入mysql pandas_python pandas 读取文件 写入文件excel
  5. mac笔记本怎么外接显示屏_win to go的安装与Macbook pro外接eGPU开启
  6. C#中Abstract和Virtual
  7. 苹果Mac必备增强型拖拽操作工具:Dropover
  8. vscode替换文字快捷键_这 21 个VSCode 快捷键,能让你的代码飞起来
  9. CentOS(Linux)安装KETTLE教程 并配置执行定时任务
  10. 51单片机——自动浇花系统(含全部代码)
  11. WARNING:tensorflow:sample_weight modes were coerced from ... to [‘...‘]
  12. 广东第一高中生_前广东第一高中生!曾打爆职业球员!一米八的他还能风车暴扣!...
  13. 【2】深度神经网络的损失函数/激活函数
  14. python注释多行
  15. 用计算机自我介绍,计算机简单的自我介绍
  16. [c++]CodeBlocks中去掉下划线的方法
  17. 蓝桥杯算法很美笔记—排序实现题
  18. PHICOMM(斐讯)N1盒子 - Armbian5.77(Debian 9)基本配置
  19. 计算机应用基础时间,《计算机应用基础》考试时间安排
  20. 黑马在线教育数仓实战1

热门文章

  1. 好用的 Abyss Web Server
  2. Python Flask框架常用组件介绍
  3. Node.js 将Json文件数据转为SQL可执行的insert语句
  4. java 检查输入_在java中检查输入的问题
  5. 【Java例题】7.6文件题3-文本文件统计
  6. Rabbit MQ 学习笔记(3)角色列表
  7. 高并发编程基础(java.util.concurrent包常见类基础)
  8. 一个好玩的 屏蔽别人审查元素F12 右键及其他复制粘贴等
  9. Java多线程核心知识
  10. Oracle中的数据类型和数据类型之间的转换