$refs、$parent、$children的使用
$refs
作用
获取对应组件实例,如果是原生dom,那么直接获取的是该dom。获取之后我们可以使用它的属性和方法。
使用方法:
// 我们需要获取实例ref (dom) <my-component ref="myRef"></my-component> // 然后我们在js中通过$refs方式获取该实例 this.$refs.myRef
然后就可以调用属性或者方法
let name = this.$refs.myRef.name
this.$refs.myRef.getSonMsg()
注意:
1、如果你在mounted里获取this.$refs,因为dom还未完全加载,所以你是拿不到的, update阶段则是完成了数据更新到 DOM 的阶段(对加载回来的数据进行处理),此时,就可以使用this.$refs了
2、如果写在method中,那么可以使用 this.$nextTick(() => {}) 等页面渲染好再调用,这样就可以了
$parent
使用范围:
该属性只针对vue组件,与js中parentNode还是有区别的。
$parent: 获取父组件实例。
$parent: 获取父节点。
作用:
获取父组件实例,同样,获取之后我们可以使用它的属性和方法。
使用方法:
// 父组件中
<template>
<my-component></my-component>
</template>
<script>
export default{
data(){
return{
num: ''
}
}
}
</script>
// 子组件中
<template>
<div>我是子组件</div>
<el-button @click="getParent"></el-button>
</template>
<script>
export default{
data(){},
methods:{
getParent(){
// 通过$parent我们可以获取父组件实例,并将他的属性num改为1
this.$parent.num = 1
}
}
}
</script>
如果子组件是公共组件,会被多个父组件调用,那么$parent会怎么获取?改变他们的属性将会怎么变化?父组件中没有这个属性怎么办?
- 针对不同父组件调用,子组件会每次都会生成一个实例,这也是Vue的重要机制。$parent会获取每个调用它的父组件实例。
 - 子组件中通过$parent会改变每个调用它的父组件中的对应属性。
 
$children
使用范围:
该属性只针对vue组件,与js中childNodes还是有区别的。
$children: 获取子组件实例集合。
childNodes: 获取子节点集合。
作用:获取父组件下的所有子组件实例,返回的是一个数组。
使用方法:
// 父组件中
<template>
<A></A>
<B></B>
</template>
<script>
export default{
data(){},
mounted(){
// 通过$children可以获取到A和B两个子组件的实例
console.log('children:',this.$children)
}
}
</script>
this.$children[0]就能获取相应的组件
随机推荐
- 1 分钟生成架构图?程序员 AI 绘图保姆级教程
			
大家好,我是鱼皮.作为一名程序员,画图可以说是工作中的家常便饭了.无论是给领导汇报时画架构图.还是写文档时画流程图.或者头脑风暴时画思维导图,画图能力直接体现出我们的专业水平. 以前画图需要自己费时费 ...
 - 如何使用MCP开发一个客户端和服务端
			
如何使用MCP开发一个客户端和服务端 一.MCP和API以及Function Call核心概念对比 特性 API Function Call MCP (Model Context Protocol) ...
 - 运用servlet来实现文件的上传与下载
			
文件的上传: 1 /** 2 * 1. 文件的上传必须使用post请求,因为get请求的数据是在 url地址上, 但是url地址 3 * 能够携带数据大小是有限:2k 4k 4 * 2. 文件上传必须 ...
 - ABAP基础一:ALV样例
			
REPORT zly_report. *********Report Demo**************************************** *本程序主要将普通的ALV报表做拆分讲解 ...
 - X6在数栈指标管理中的应用
			
 一.需求背景 产品成立之初,产品的需求是需要对各种指标进行公式运算,组合成一个新的复合指标,供后续使用.当时产品提出的形式是有两种: 一种是直接让用户输入,不作任何其他操作,但这种方式带来的问题一 ...
 - C# WinForms 中嵌入 EXE 程序  打开外部的exe程序
			
public class ProcessEmbedder { // 常量定义 private const int GWL_STYLE = -16; // 窗口样式 private const int ...
 - vue3 配置自动导入API和组件
			
前言 在开发vue项目的过程中,像 ref.react等常用的api总是频繁导入,有点麻烦. 发现github上有一个不错的开源工具unplugin-auto-import,可以借助它 让所需自动导入 ...
 - HDU7458 旅行 题解
			
前言 感觉是非常优秀的题目,写一篇题解记录一下. HDU-7458 旅行(on Vjudge) 题面 题目描述 有一棵 \(n\) 个结点的无根树,每个结点都有对应的类型 \(c_i\) 和权重 \( ...
 - Educational Codeforces Round 96   ABCDE 题解(详解)
			
A. Number of Apartments 题意:用3.5.7凑数,若能凑出给出方案,不能则输出-1. 思路:观察发现除了1 2 4凑不到以外其他都凑得到.那么关于方案的话,既然其他数都凑得到,我 ...
 - Codeforces Round #670 (Div. 2)  ABC 题解
			
A. Subset Mex 题意:把一个集合(可能有重复元素)分成两部分,使得每部分的缺少的最小非负整数的和最大. 其中在原序列里面就缺少的那个最小非负整数肯定是躲不掉的.就先把这个数之前的所有数放在 ...