iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vue中的$attrs和$listeners属性及用法是什么
  • 431
分享到

vue中的$attrs和$listeners属性及用法是什么

2023-06-22 06:06:47 431人浏览 薄情痞子
摘要

Vue中的$attrs和$listeners属性及用法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。多级组件嵌套需要传递数据时,通常使用的方法是通过vue

Vue中的$attrs和$listeners属性及用法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

多级组件嵌套需要传递数据时,通常使用的方法是通过vuex。但仅仅是传递数据,不做中间处理,使用 vuex 处理,未免有些大材小用了。所以就有了 $attrs$listeners两个属性 ,通常配合 inheritAttrs 一起使用。

$attrs

  • 从父组件传给自定义子组件的属性,如果没有 prop 接收会自动设置到子组件内部的最外层标签上,如果是 classstyle 的话,会合并最外层标签的 classstyle

  • 如果子组件中不想继承父组件传入的非 prop 属性,可以使用 inheritAttrs 禁用继承,然后通过 v-bind="$attrs" 把外部传入的 非 prop 属性设置给希望的标签上,但是这不会改变 classstyle

inheritAttrs 属性

0 新增

官网链接 https://cn.vuejs.org/v2/api/#inheritAttrs

  • 类型boolean

  • 默认值true

  • 详细

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

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

例子:

父组件

<template>  <my-input      required      placeholder="请输入内容"      type="text"      class="theme-dark"  /></template><script>import MyInput from './child'export default {  name: 'parent',  components: {    MyInput  }}</script>

子组件

<template>  <div>    <input        v-bind="$attrs"        class="fORM-control"    />  </div></template><script>export default {  name: 'MyInput',  inheritAttrs: false}</script>

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

inheritAttrs: false

vue中的$attrs和$listeners属性及用法是什么

inheritAttrs: true

vue中的$attrs和$listeners属性及用法是什么

$listeners (官网解释)

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

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

// 父组件<template>  <my-input      required      placeholder      class="theme-dark"      @focue="onFocus"      @input="onInput"  >  </my-input></template><script>import MyInput from './child'export default {  components: {    MyInput  },  methods: {    onFocus (e) {      console.log(e.target.value)    },    onInput (e) {      console.log(e.target.value)    }  }}</script>
// 子组件<template>  <div>    <input        type="text"        v-bind="$attrs"        class="form-control"        @focus="$emit('focus', $event)"        @input="$emit('input', $event)"    />  </div></template><script>export default {  name: 'MyInput',  inheritAttrs: false}</script>

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

 <input        type="text"        v-bind="$attrs"        class="form-control"+       v-on="$listeners"-       @focus="$emit('focus', $event)"-       @input="$emit('input', $event)"    />

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

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网精选频道,感谢您对编程网的支持。

--结束END--

本文标题: vue中的$attrs和$listeners属性及用法是什么

本文链接: https://www.lsjlt.com/news/303023.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue中的$attrs和$listeners属性及用法是什么
    vue中的$attrs和$listeners属性及用法是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。多级组件嵌套需要传递数据时,通常使用的方法是通过vue...
    99+
    2023-06-22
  • Vue中$attrs和$listeners详解以及使用方法
    目录Vue中 常见的组件通信方式可分为三类1. 前言2. 知识点3. 示例总结 传送门:Vue中 子组件向父组件传值 及 .sync 修饰符 详解传送门:Vue中 状态管理...
    99+
    2022-11-16
    vue $attrs $listeners vue $attrs $listeners属性
  • 详解Vue中$props、$attrs和$listeners的使用方法
    目录背景一、文档描述二、具体使用三、总结背景 现在我们来讨论一种情况,父组件与孙子组件怎么通信,我们有多少种解决方案? 我们使用VueX来进行数据管理,但是如果项目中多个组件共享状态...
    99+
    2024-04-02
  • Vue中监视属性和计算属性的区别是什么
    这篇文章主要讲解了“Vue中监视属性和计算属性的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vue中监视属性和计算属性的区别是什么”吧!计算属性顾名思义,计算属性就是计算出来的属...
    99+
    2023-07-04
  • Vue中使用计算属性的方法是什么
    这篇文章主要介绍“Vue中使用计算属性的方法是什么”,在日常操作中,相信很多人在Vue中使用计算属性的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue中使用计算属性的方法是什么”的疑惑有所帮助!...
    99+
    2023-06-21
  • vue中mixins属性的作用是什么
    本篇文章给大家分享的是有关vue中mixins属性的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。mixin.js 文件import...
    99+
    2024-04-02
  • vue中watch是什么属性
    本教程操作环境:windows7系统、vue3版,DELL G3电脑。vue监视属性在开发中,我们会遇到这样一种情况,我们需要一个属性变化的时候,然后做出一些操作。而检测这个变化的属性,在vue中叫做监视属性。1.监视属性是什么在vue中,...
    99+
    2023-05-14
    watch Vue
  • HTML5中表单的常用属性及新属性是什么
    这篇文章主要介绍了HTML5中表单的常用属性及新属性是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 HTML5 新的表单属性 HT...
    99+
    2024-04-02
  • Vue实例对象的常用属性和方法是什么
    这篇“Vue实例对象的常用属性和方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue实例对象的常用属性和方法是什么...
    99+
    2023-07-06
  • Vue中computed(计算属性)和watch(监听属性)的用法及区别说明
    目录计算属性computed侦听属性watch计算属性computed 支持缓存,只有依赖数据发生改变,才会重新进行计算 不支持异步,当computed内有异步操作时无效,无法监听数...
    99+
    2024-04-02
  • vue组件中watch属性的作用是什么
    本篇文章为大家展示了vue组件中watch属性的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体内容如下<!doctype html&g...
    99+
    2024-04-02
  • ADO中cursorlocation属性的用法是什么
    ADO中的cursorlocation属性用于设置或获取游标位置的方式。游标位置确定了在从数据库中检索数据时,ADO对象将在何处放置...
    99+
    2024-02-29
    ADO
  • vue中计算属性和方法的区别及说明
    目录vue计算属性和方法区别区别vue向计算属性传递参数vue计算属性和方法区别 当我们实现翻转字符串的业务逻辑时,使用插值表达式打码如下: <div id="app">...
    99+
    2024-04-02
  • CSS中margin属性的用法是什么
    本篇内容介绍了“CSS中margin属性的用法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!CSS中...
    99+
    2024-04-02
  • css属性中float属性的作用是什么
    本教程操作环境:Windows10系统、CSS3版、DELL G3电脑css属性中float属性的作用是什么?float,css的一种属性,主要属性值为:left(左浮动)、none(不浮动)、right(右浮动)、inherit(继承父元...
    99+
    2023-05-14
    float css
  • HTML5和CSS3常用属性和方法是什么
    这篇文章主要介绍HTML5和CSS3常用属性和方法是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!   DOM扩展   获得元素 document.querySelector...
    99+
    2024-04-02
  • vue中$的含义及用法是什么
    这篇文章主要讲解了“vue中$的含义及用法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue中$的含义及用法是什么”吧!这些只是Vue的命名规则,为了区分普通变量属性,避免我们自己声...
    99+
    2023-07-06
  • BOM中location对象的属性和方法是什么
    这篇文章主要介绍了BOM中location对象的属性和方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇BOM中location对象的属性和方法是什么文章都会有所收获,下面我们一起来看看吧。一、locat...
    99+
    2023-07-05
  • javascript中doucument对象的属性和方法是什么
    这篇文章主要介绍了javascript中doucument对象的属性和方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript中doucument对象的属性...
    99+
    2024-04-02
  • HTML中div元素的属性和方法是什么
    小编给大家分享一下HTML中div元素的属性和方法是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! <style&g...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作