我的需求

有些时候,我们需要获取组件的DOM元素
有些小伙伴会说,这还不简单
直接使用this.$ref.xx不就可以了吗
我们来看一下,是不是我们想的那样简单

组件内容

<template>
<div class="demo">
<h2>我是组件</h2>
<div>我是组件中的数据</div>
</div>
</template>

使用组件的页面

<template>
<div>
我是页面测试一
<testcom ref="testRef"></testcom>
</div>
</template>
<script>
import testcom from "../components/test-com.vue"
export default {
components:{
testcom:testcom
},
mounted(){
console.log('获取组件内的DOM',this.$refs.testRef);
}
}
</script>

现在的实际结果

我想在这个页面内,获取组件内的DOM元素
也就是获取
<div>
我是页面测试一
<testcom ref="testRef"></testcom>
</div>
实际上压根获取的就是这样的
我们并没有获取到组件内的DOM元素。
而是获取的是Vue的组件
那要怎么样才可以获取组件内的元素呢

解决办法使用$el

<template>
<div>
我是页面测试一
<testcom ref="testRef"></testcom>
</div>
</template> <script>
import testcom from "../components/test-com.vue"
export default {
components:{
testcom:testcom
},
mounted(){
console.log('获取组件内的DOM',this.$refs.testRef.$el);
}
}
</script>

需求描述

有些时候我们需要封装组件
封装组件的时候,
我们需要属性直接设置在某一个指定的元素上。
<template>
<div>
我是测试页面
<testcom type="text"></testcom>
<testcom type="password"></testcom>
</div>
</template>

组件

<template>
<div class="demo">
<input name="" id="">
</div>
</template>

实际结果

属性结果直接被添加到跟元素上去了。
因为这个是vue规定的
我们如何让属性设置在指定的元素上面呢?
我们可以使用inheritAttrs
官网对:inheritAttrs的解释
如果你不希望组件的根元素有继承特性,你可以在组件的选项中设置 inheritAttrs: false。

解决办法inheritAttrs的使用

<template>
<div class="demo">
//动态绑定到需要的元素上
<input v-bind="$attrs" name="" id="">
</div>
</template> <script>
export default {
//表示不添加在组件的根元素上
inheritAttrs:false
//inheritAttrs 读音 [ ɪnˈherɪt] [in her t ATTRS】
}
</script>

vue获取子组件的实例$el、$attrs和inheritAttrs的使用的更多相关文章

  1. vue 父组件主动获取子组件的数据和方法 子组件主动获取父组件的数据和方法

    Header.vue <template> <div> <h2>我是头部组件</h2> <button @click="getParen ...

  2. Vue 父组件主动获取子组件的值,子组件主动获取父组件的值

    父组件主动获取子组件的值 1. 在调用子组件的时候定义一个ref-> ref="header"2. 在父组件中通过this.$refs.header.属性,调用子组件的属性, ...

  3. Vue父组件主动获取子组件的数据和方法

    Vue父组件主动获取子组件的数据和方法 https://www.jianshu.com/p/bf88fc809131

  4. vue父组件获取子组件页面的数组 以城市三级联动为例

    父组件调用子组件 <Cselect ref="registerAddress"></Cselect> import Cselect from '../../ ...

  5. vue.js 父组件主动获取子组件的数据和方法、子组件主动获取父组件的数据和方法

    父组件主动获取子组件的数据和方法 1.调用子组件的时候 定义一个ref <headerchild ref="headerChild"></headerchild& ...

  6. vue组件通信之父组件主动获取子组件数据和方法

    ref 可以用来获取到dom节点,如果在组件中应用,也可以用来获取子组件的数据和方法. 比如,我定义了一个home组件,一个head组件,home组件中引用head组件. 此时,home组件是head ...

  7. vue--父组件主动获取子组件的方法

    父组件主动获取子组件的方法和属性 第一步:调用自组件的时候,给自组建定义一个Header <v-header ref='headerInfo'></v-header> 第二步: ...

  8. vue3 template refs dom的引用、组件的引用、获取子组件的值

    介绍 通过 ref() 还可以引用页面上的元素或组件. DOM 的引用 <template> <div> <h3 ref="h3Ref">Tem ...

  9. 子组件获取父组件数据 propsDown, 父组件获取子组件数据 eventUp

    (一) popsDowm 三种方法获取父组件数据:被动获得(1):主动获取(2). 1.被动获得: 父组件:v-bind: 绑定变量参数和方法参数:子组件:props 接收参数.可以在模板中直接使用也 ...

  10. Vue 给子组件传递参数

    Vue 给子组件传递参数 首先看个例子吧 原文 html <div class="container" id="app"> <div clas ...

随机推荐

  1. 华为云FusionInsight连续三次获得第一,加速释放数据要素价值

    摘要:近日,IDC发布<中国大数据平台市场研究报告,2021 H1>,华为云FusionInsight智能数据湖已连续三次获得大数据平台市场份额第一. 本文分享自华为云社区<华为云F ...

  2. Scrum Master需要具备哪些能力和经验

    摘要:ScrumMaster对于产品负责人和开发团队来说,履行的是教练的职责,帮助团队和组织其他成员发展具有组织特色的.高效的Scrum方法,贯彻执行敏捷思想,激励团队持续提升,并不懈追求卓越的表现. ...

  3. C++11实用特性3 --智能指针

    1 智能指针 在C++中没有垃圾回收机制,必须自己释放分配的内存,否则就会造成内存泄露.解决这个问题最有效的方法是使用智能指针(smart pointer).智能指针是存储指向动态分配(堆)对象指针的 ...

  4. 又强大了,LiteFlow里程碑版本2.8.0发版注记!全新的DSL会惊艳到你吗?

    一 New version! 2.8.0 go!!! 这是我在提交中央仓库前写下的简短description.我希望这个版本能把LiteFlow带向更远的地方. 曾经在半年前就计划的新的DSL计划,但 ...

  5. Step by step guide to becoming a C++ developer in 2023

    https://roadmap.sh/cpp https://roadmap.sh/backend

  6. 《机器学习实战》 | 第3章 决策树(含Matplotlib模块介绍)

    系列文章:<机器学习实战>学习笔记 本篇文章使用到的完整代码:Here 决策树 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据. 缺点:可能会产生过度 ...

  7. AtCoder Beginner Contest 203 (A~D,玄学二分场)

    补题链接:Here A - Chinchirorin 给出 \(a,b,c\) 三个正整数,现请打印各种情况的答案: \(a=b=c\) ,输出一个即可 \(a = b\ and\ a != c\) ...

  8. 构建高效数据流转的 ETL 系统:数据库 + Serverless 函数计算的最佳实践

    作者|柳下 概述 随着企业规模和数据量的增长,数据的价值越来越受到重视.数据的变化和更新变得更加频繁和复杂,因此及时捕获和处理这些变化变得至关重要.为了满足这一需求,数据库 CDC(Change Da ...

  9. Vue项目利用axios请求接口下载excel(附前后端代码)

    https://blog.csdn.net/aSmallProgrammer/article/details/91440793?utm_medium=distribute.pc_relevant.no ...

  10. 使用策略模式重构 if/elseif/elseif

    本文翻译自国外论坛 medium,原文地址:https://medium.com/aia-sg-techblog/refactor-if-elseif-elseif-using-strategy-de ...