组件事件属性穿透
属性
$attrs包含从父组件传过来的属性,但不包含子组件中prop中的属性以及class和style,所以对于那些html元素原生属性,可以不用再子组件中声明,直接从父组件中传进来就好
// 子组件 <template> <div> <input type="text" name="" id="" v-bind="$attrs" v-on='listeners'/> </div> </template> props: { test: { type: String, default: '123456' } }, created () { console.log(`props:%o`, this.$props) // {test: '测试'} console.log('attrs:%o', this.$attrs) // {value: '测试'} }, // 父组件 <myInput :value="value" :class="class_" :style='style' :test='test' @input1="input"/> data () { return { style: { color: 'red' }, value: '测试', class_: 'test', test: '测试' } }
注意:
由于在这个组件中input并不是根元素,默认情况下父组件的不被认作 props 的特性绑定将会“回退”且作为普通的 HTML 特性应用在子组件的根元素上,在该例子中根节点div会有value="测试"的属性,所以子组件需要设置 inheritAttrs: false去掉根元素默认行为,这样就可以通过实例属性 $attrs 可以让这些特性生效,且可以通过 v-bind 显性的绑定到非根元素上。
在子组件修改props,却不会修改父组件,这是因为extractPropsFromVNodeData中是通过浅复制将父组件中数据传递给props的。 浅复制意味着在子组件中对对象和数组的props进行修改还是会影响父组件,这就违背了单向数据流的设计。因此需要避免这种情况出现。
事件
$listeners包含了父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过 v-on="$listeners" 传入内部组件 computed: { listeners () { return { ...this.$listeners, // 下面写需要从子组件事件传值到从父组件中的 input: e => { this.$emit('input1', e.target.value) } } } },
以上这篇关于vue组件事件属性穿透详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍对vue中的事件穿透与禁止穿透实例详解,包括了对vue中的事件穿透与禁止穿透实例详解的使用技巧和注意事项,需要的朋友参考一下 在开发过程中经常遇到的一个场景,就是,页面弹窗,弹窗上有一个确定或者关闭按钮,这时,如果下方有一个按钮,那你点击弹窗的时候,也会触发弹窗下层的按钮事件,vue提供的解决方法就是直接在click.stop js的解决办法是,直接在事件的方法中添加event.st
本文向大家介绍关于Vue组件库开发详析,包括了关于Vue组件库开发详析的使用技巧和注意事项,需要的朋友参考一下 前言 2017年是Vue.js大爆发的一年,React迎来了一个强有力的竞争对手,王者地位受到挑战(撰写此文时github上Vue与React的star数量已逼近)。我们团队这一年有十多个大型项目采用了Vue技术栈,在开发效率、页面性能、可维护性等方面都有不错的收效。 我们希望把这些项目
本文向大家介绍css穿透属性有哪些?相关面试题,主要包含被问及css穿透属性有哪些?时的应答技巧和注意事项,需要的朋友参考一下 /* Keyword values / pointer-events: auto; pointer-events: none; pointer-events: visiblePainted; / SVG only / pointer-events: visibleFill
本文向大家介绍vue组件watch属性实例讲解,包括了vue组件watch属性实例讲解的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了vue组件watch属性的具体代码,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
本文向大家介绍Android7.0中关于ContentProvider组件详解,包括了Android7.0中关于ContentProvider组件详解的使用技巧和注意事项,需要的朋友参考一下 作为Android的四大组件之一,ContentProvider作为进程之间静态数据传递的重要手段,其在系统级别的应用中起了重大的作用。毫无疑问,ContentProvider核心机制之一也是Binder,但
本文向大家介绍MSScriptControl.ScriptControl组件属性、方法、事件介绍,包括了MSScriptControl.ScriptControl组件属性、方法、事件介绍的使用技巧和注意事项,需要的朋友参考一下 MSScriptControl.ScriptControl组件实例对象属性 属性名称 类型 备注 AllowUI BOOL 检测是否允许运行用户的接口元素。如果为False