Vue 新增的$attrs与$listeners的详解
$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的详解相关推荐
- vue 生命周期的11中方法详解
vue 生命周期的十一中方法详解 vue 生命周期的定义 vue实例 从创建到销毁,也就是说从创建 -> 初始化 数据-> 编译模版 -> 挂载Dom -> 渲染 更新 -&g ...
- vue build text html,Vue中v-text / v-HTML使用实例代码详解_放手_前端开发者
废话少说,代码如下所述: /p> 显示123 /p> 补充:vuejs {{}},v-text 和 v-html的区别 {{message}} let app = new Vue({ el ...
- 移动端html5手写板,Vue+canvas实现移动端手写板步骤详解
这次给大家带来Vue+canvas实现移动端手写板步骤详解,Vue+canvas实现移动端手写板的注意事项有哪些,下面就是实战案例,一起来看一下. 清除 保存 Canvas画板 var draw; v ...
- 泛微oa明细表添加按钮_泛微OA 新增功能:表格单建模详解.doc
泛微OA 新增功能:表格单建模详解 Weaver Software中国上海耀华支路39弄9号(通耀路济明路路口) Weaver Software 中国上海耀华支路39弄9号(通耀路济明路路口) 邮政编 ...
- vue的父子组件之间的通信详解
vue的父子组件之间的通信详解 一.父组件给子组件传值 父组件引入子组件,并对子组件进行监听 <!-- 父组件 --><template><div><h1&g ...
- 巅峰战舰今日服务器全部维护,巅峰战舰12月7日更新维护公告 12.7新增玩法和舰船属性调整详解[图]...
类型:策略卡牌 大小:827.38MB 评分:10 平台: 巅峰战舰今天进行了临时维护更新,具体更新了什么内容?估计小伙伴们不太清楚,没关系,下面是小麦整理出来的12.7新增玩法和舰船属性调整详解,希 ...
- vue inheritAttrs、$attrs和$listeners使用
inheritAttrs.$attrs和$listeners使用场景: 组件传值,尤其是祖孙组件有跨度的传值. (1)inheritAttrs 属性说明:https://cn.vuejs.org/v2 ...
- [vue] 说下$attrs和$listeners的使用场景
[vue] 说下attrs和attrs和attrs和listeners的使用场景 <template><el-button v-on="$listeners" v ...
- Vue-- $attrs与$listeners的详解
vm.$attrs 2.4.0新增 类型 { [key: string]: string } 只读 详细 包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style ...
最新文章
- 原360首席科学家颜水成正式加入依图科技,任首席技术官
- python服务器同步
- PRML-github code使用两个小攻略
- python读取excel写入mysql pandas_python pandas 读取文件 写入文件excel
- mac笔记本怎么外接显示屏_win to go的安装与Macbook pro外接eGPU开启
- C#中Abstract和Virtual
- 苹果Mac必备增强型拖拽操作工具:Dropover
- vscode替换文字快捷键_这 21 个VSCode 快捷键,能让你的代码飞起来
- CentOS(Linux)安装KETTLE教程 并配置执行定时任务
- 51单片机——自动浇花系统(含全部代码)
- WARNING:tensorflow:sample_weight modes were coerced from ... to [‘...‘]
- 广东第一高中生_前广东第一高中生!曾打爆职业球员!一米八的他还能风车暴扣!...
- 【2】深度神经网络的损失函数/激活函数
- python注释多行
- 用计算机自我介绍,计算机简单的自我介绍
- [c++]CodeBlocks中去掉下划线的方法
- 蓝桥杯算法很美笔记—排序实现题
- PHICOMM(斐讯)N1盒子 - Armbian5.77(Debian 9)基本配置
- 计算机应用基础时间,《计算机应用基础》考试时间安排
- 黑马在线教育数仓实战1