首页 >

认识一下vue中的$attrs和$listeners属性,聊聊用法

web前端|Vue.js认识一下vue中的$attrs和$listeners属性,聊聊用法
vue,$attrs,$listeners
web前端-Vue.js
本篇文章带大家了解一下vue中封装组件利器:$attrs、$listeners属性,看看它们的用法,希望对大家有所帮助!
个人小程序源码,stm32使用vscode,ubuntu软件转换,怎么么安装tomcat,爬虫宠物介绍,苹果电脑php,seo最重要的几个点,bootstrap 企业网站,html5模板使用lzw
淘客cms源码,如何安装ubuntu教程,tomcat有使用限制吗,厕所水池爬虫,php规范注释,益阳360seo优化服务商lzw
多级组件嵌套需要传递数据时,通常使用的方法是通过vuex。但仅仅是传递数据,不做中间处理,使用 vuex 处理,未免有些大材小用了。所以就有了 $attrs$listeners两个属性 ,通常配合 inheritAttrs 一起使用。
文章系统源码,vscode 列表图标,ubuntu抱歉,tomcat错误202,远程连接本地sqlite,温度计插件 js,轻量级网页前端ui框架,爬虫和文本区别,php array函数,汕尾seo优化行业,可以看源码的网站,html5做手机网页的书,html用户注册模板lzw
$attrs从父组件传给自定义子组件的属性,如果没有 prop 接收会自动设置到子组件内部的最外层标签上,如果是 classstyle 的话,会合并最外层标签的 classstyle。如果子组件中不想继承父组件传入的非 prop 属性,可以使用 inheritAttrs 禁用继承,然后通过 v-bind="$attrs" 把外部传入的 非 prop 属性设置给希望的标签上,但是这不会改变 classstyle

inheritAttrs 属性

类型boolean

默认值true

详细

默认情况下父作用域的不被认作 props 的 attribute 绑定 (attribute bindings) 将会“回退”且作为普通的 HTML attribute 应用在子组件的根元素上。当撰写包裹一个目标元素或另一个组件的组件时,这可能不会总是符合预期行为。通过设置 inheritAttrsfalse,这些默认行为将会被去掉。而通过 (同样是 2.4 新增的) 实例 property $attrs 可以让这些 attribute 生效,且可以通过 v-bind 显性的绑定到非根元素上。

注意:这个选项不影响 classstyle 绑定。

例子:

父组件

  import MyInput from './child'export default {  name: 'parent',  components: {    MyInput  }}

子组件

  
export default { name: 'MyInput', inheritAttrs: false}

子组件中没有接受父组件中传过来的值,也没有绑定,但是有v-bind="$attrs"这个属性,他会自动接受并绑定

inheritAttrs: false

inheritAttrs: true

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

先上代码:这里只举例focueinput两个原生事件

// 父组件    import MyInput from './child'export default {  components: {    MyInput  },  methods: {    onFocus (e) {      console.log(e.target.value)    },    onInput (e) {      console.log(e.target.value)    }  }}
// 子组件  
export default { name: 'MyInput', inheritAttrs: false}

这样绑定原生事件很麻烦,每一个原生事件都需要绑定,但用v-on="$listeners"就会省事很多

 

这样一行代码就能解决绑定所有的原生事件的问题


认识一下vue中的$attrs和$listeners属性,聊聊用法
  • [李景山php]每天laravel-20160901|Dispatcher-1
  • [李景山php]每天laravel-20160901|Dispatcher-1 | [李景山php]每天laravel-20160901|Dispatcher-1 ...

    认识一下vue中的$attrs和$listeners属性,聊聊用法
  • onclick与listeners的执行先后问题详细解剖【javascript】
  • onclick与listeners的执行先后问题详细解剖【javascript】 | onclick与listeners的执行先后问题详细解剖【javascript】 ...

    认识一下vue中的$attrs和$listeners属性,聊聊用法
  • [李景山php]每天laravel-20160906|Dispatcher-6
  • [李景山php]每天laravel-20160906|Dispatcher-6 | [李景山php]每天laravel-20160906|Dispatcher-6 ...