我的需求

有些时候,我们需要获取组件的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. 从1天到10分钟的超越,华为云DRS在背后做了这些

    摘要:华为云DRS助力一汽-大众BI平台实时查看报表,提升数字化决策能力. 本文分享自华为云社区<分钟级查看报表,华为云&一汽-大众,让商机时刻被洞见>,作者:GaussDB 数据 ...

  2. PPT 产品发布会PPT应该怎么样改

    PPT 毕业答辩PPT应该怎么样改 大图背景打底 刺眼 收集素材

  3. 阿里云Imagine Computing创新技术大赛正式开启!

    阿里云 Imagine Computing 创新技术大赛,是由阿里云与英特尔主办,阿里云天池平台.边缘云.视频云共同承办的顶级赛事,面向个人开发者和企业的边缘云领域算法及实时音视频应用类挑战. 本次创 ...

  4. 打破虚拟边界的视频交互新方式,AR隔空书写的应用理念和探索实践

    AR隔空书写演示 随着技术的发展和超视频化的时代驱动,交互的形式日渐丰富.从屏幕点触,到语音交互,人脸.指纹.声纹,再到近年流行的AR和VR--人类早在语言出现之前便习惯使用肢体和手势这种近乎本能的沟 ...

  5. UVA - 12096 :The SetStack Computer

    题目大意 用集合模拟计算机操作.每执行完一个操作,输出栈顶的集合大小,操作如下: PUSH:空集合压栈 DUP:将栈顶元素再次压栈 UNION:依次弹栈得a,b,求并集后压栈 INTERSECT:依次 ...

  6. jdk1.8(java8)新特性

    借鉴之:https://blog.csdn.net/qq_28410283/article/details/80601495 Lambda 表达式: //1.Lambda 表达式,也可称为闭包,它是推 ...

  7. oppo和海康嵌入式软件工程师面经总结

    目录 海康 一面(3.23,35min) 自我介绍 项目介绍 你做的这个项目遇到了那些问题,如何解决的? 移植uboot,只做了移植吗? 用的那个文件系统? 移植过程中,网卡驱动做了那些工作? 写过那 ...

  8. 深度学习降噪专题课:实现WSPK实时蒙特卡洛降噪算法

    大家好~本课程基于全连接和卷积神经网络,学习LBF等深度学习降噪算法,实现实时路径追踪渲染的降噪 本课程偏向于应用实现,主要介绍深度学习降噪算法的实现思路,演示实现的效果,给出实现的相关代码 线上课程 ...

  9. 简易机器学习笔记(九)LeNet实例 - 在眼疾识别数据集iChallenge-PM上的应用

    前言 上一节大概讲了一下LeNet的内容,这一章就直接来用,实际上用一下LeNet来进行训练和分类试试. 调用的数据集: https://aistudio.baidu.com/datasetdetai ...

  10. KSP(坎巴拉)萌新感悟

    1.为什么降落月球等无大气星球时减速为亚轨道之后便不再减速,等到快坠落的时候在满节流阀极限减速最省燃料? 因为我们的dv是确定的,燃料能给我们带来一定量的冲量,却因此可以带来不一定量的动量,显然速度越 ...