025: vue父子组件中传递方法控制:$emit,$refs,$parent,$children

news2024/11/20 16:33:46

在这里插入图片描述

第025个

查看专栏目录: VUE ------ element UI


专栏目标

在vue和element UI联合技术栈的操控下,本专栏提供行之有效的源代码示例和信息点介绍,做到灵活运用。

(1)提供vue2的一些基本操作:安装、引用,模板使用,computed,watch,生命周期(beforeCreate,created,beforeMount,mounted, beforeUpdate,updated, beforeDestroy,destroyed,activated,deactivated,errorCaptured,components,)、 $root , $parent , $children , $slots , $refs , props, $emit , eventbus ,provide / inject, Vue.observable, $listeners, $attrs, $nextTick , v-for, v-if, v-else,v-else-if,v-on,v-pre,v-cloak,v-once,v-model, v-html, v-text, keep-alive,slot-scope, filters, v-bind,.stop, .native, directives,mixin,render,国际化,Vue Router等

(2)提供element UI的经典操作:安装,引用,国际化,el-row,el-col,el-button,el-link,el-radio,el-checkbox ,el-input,el-select, el-cascader, el-input-number, el-switch,el-slider, el-time-picker, el-date-picker, el-upload, el-rate, el-color-picker, el-transfer, el-form, el-table, el-tree, el-pagination,el-badge,el-avatar,el-skeleton, el-empty, el-descriptions, el-result, el-statistic, el-alert, v-loading, $message, $alert, $prompt, $confirm , $notify, el-breadcrumb, el-page-header,el-tabs ,el-dropdown,el-steps,el-dialog, el-tooltip, el-popover, el-popconfirm, el-card, el-carousel, el-collapse, el-timeline, el-divider, el-calendar, el-image, el-backtop,v-infinite-scroll, el-drawer等

本文章目录

    • 专栏目标
    • 需求背景
    • 示例效果
    • 示例源代码
      • 父组件(共99行)
      • 子组件 child.vue(共37行)
    • 理论介绍

需求背景

这是一个父子组件之间的控制方法,父组件可以通过‘ c h i l d r e n ’ 或 ′ children’或' childrenrefs’来控制子组件中的方法;子组件可以通过$parent或 $emit来控制子组件中的方法

示例效果

在这里插入图片描述

示例源代码

父组件(共99行)

/*
* @Author: 大剑师兰特(xiaozhuanlan),还是大剑师兰特(CSDN)
* @此源代码版权归大剑师兰特所有,可供学习或商业项目中借鉴,未经授权,不得重复地发表到博客、论坛,问答,git等公共空间或网站中。
* @Email: 2909222303@qq.com
* @weixin: gis-dajianshi
* @First published in CSDN
* @First published time: 2022-09-04
*/

<template>
	<div class="container">
		<div class="top">
			<h3>父子方法控制:$emit,$refs,$parent,$children </h3>
			<div class="author">大剑师兰特, 还是大剑师兰特,gis-dajianshi</div>
		</div>
		<el-button size="mini" type="primary" @click="showc1()"> refs子组件控制1 </el-button>
		<el-button size="mini" type="primary" @click="showc2()"> children子组件控制2 </el-button>
		<Childcom ref="mychild" @showP='showP2' />
		
	    <div v-if="isParent2">
			这是用$emit方法显示的父组件信息	(parent2)
		</div>
		<div v-if="isParent1">
			<div class="oneLine" v-for="(item,index) in listData" :key="index">
				<div class="fl20"><img :src="item.thumbnail_pic_s" alt=""></div>
				<div class="fl20"> {{item.date}} </div>
				<div class="fl20">{{item.title}} </div>
			</div>
		</div>

	</div>
</template>

<script>
	import Childcom from '@/components/child.vue'
	export default {
		data() {
			return {
				listData:[],
				isParent1:false,
				isParent2:false,
			}
		},
		components: {
			Childcom
		},
		mounted() {
			this.getdata()
		},
		methods: {
			showc1(){
				this.$refs.mychild.showChild1()
			},
            showc2(){
				console.log(this.$children)
				this.$children[2].showChild2()
			},
			showP1(){
				this.isParent1=true;
			},
			showP2(){
				this.isParent2=true;
			},
			getdata() {
				let url = "/listdata"
				this.$request(url, {}, "GET")
					.then((res) => {
						this.listData = res.data.data
						console.log(this.listData)
					})
			},
		}

	}
</script>
<style scoped>
	.container {
		width: 1000px;
		height: 540px;
		margin: 50px auto;
		border: 1px solid orange;
	}

	.top{
		margin:0 auto 30px; padding:10px 0;
		background-color: aquamarine;
	}

	.oneLine {
		width: 100%;
		height: 50px;
		line-height: 50px;
		background: #eee;
		margin-top: 10px;
		overflow: hidden;
		cursor: pointer;
	}
	.oneLine .fl20{ float: left; padding:0 10px;min-width: 150px;}
</style>

子组件 child.vue(共37行)

<template>
	<div>		
		<div v-if="is1">{{text1}}</div>
		<div v-if="is2">{{text2}}</div>		
    <hr>		
		<el-button @click="showparent1()" type="danger" size="mini"> 开启父组件内容1</el-button>	
		<el-button @click="showparent2()" type="danger" size="mini"> 开启父组件内容2</el-button>	
	</div>
</template>

<script>
	export default{
		data() {			
			return {
				is1:false,
				is2:false,
				text1:'通过第一种方法显示出来',
				text2:'通过第二种方法显示出来',
			}
		},
		methods:{
			showChild1(){
				this.is1=true;
			},
			showChild2(){
				this.is2=true;
			},
			showparent1(){
				this.$parent.showP1();
			},
			showparent2(){
				this.$emit('showP')
			},			
		},
	}

</script>

理论介绍

父组件访问子组件:使用this.$children或 $refs
this.$children得到是一个子组件数组,它包含所有子组件对象。
子组件访问父组件:使用this.$parent , this.$emit
子组件访问根Vue实例:使用this.$root

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/971336.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

prometheus通过blackbox-exporter监控web站点证书

1 概述 线上站点普遍是https&#xff0c;因此监控https web站点的证书的过期时间&#xff0c;是一个基础性需求。例如&#xff0c;证书过期会导致tls握手失败&#xff0c;进而导致用户无法正常访问web站点。 blackbox-expoter是一个web服务&#xff0c;它暴露了一个接口&#…

如何在面试中处理竞争与压力

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

WebSocket与SSE区别

一&#xff0c;websocket WebSocket是HTML5下一种新的协议&#xff08;websocket协议本质上是一个基于tcp的协议&#xff09; 它实现了浏览器与服务器全双工通信&#xff0c;能更好的节省服务器资源和带宽并达到实时通讯的目的 Websocket是一个持久化的协议 websocket的原理 …

算法笔记:二叉树

1 基本二叉树 二叉树是一种树形数据结构&#xff0c;其中每个节点最多有两个子节点&#xff0c;通常称为“左子节点”和“右子节点”。 二叉树的根是唯一没有父节点的节点&#xff0c;而所有其他节点都有一个父节点和零个或两个子节点。 1.1 基础术语 节点&#xff08;Node&…

服务运营 | MSOR文章精选:远程医疗服务中的统计与运筹(二)

作者信息&#xff1a;王畅&#xff0c;陈盈鑫 编者按 在上一期中&#xff0c;我们分享了与远程医疗中运营管理问题相关的两篇文章。其一发表在《Stochastic Systems》&#xff0c;旨在使用排队论与流体近似的方法解决远程医疗中资源配置的问题&#xff1b;其二发表在《Managem…

R_I相关指令函数(SMART PLC梯形图代码)

大部分小型PLC可能并没有R_I(浮点数转单字)指令&#xff0c;这篇博客我们介绍简单实用的一些转换FC,这些FC其实并不复杂&#xff0c;但是可以大大简化我们的代码量&#xff0c;使代码阅读起来更简介明了。SMART PLC的ABS()指令请查看下面文章链接&#xff1a; PLC绝对值指令AB…

04 Linux补充|C/C++

目录 Linux补充 C语⾔ C语言中puts和printf的区别&#xff1f; Linux补充 (1)ubuntu安装ssh服务端openssh-server命令&#xff1a; ubuntu安装后默认只有ssh客户端&#xff0c;只能去连其它ssh服务器&#xff1b;其它客户端想要连接这个ubuntu系统&#xff0c;需要安装部署…

LLM大模型推理加速 vLLM

参考&#xff1a; https://github.com/vllm-project/vllm https://zhuanlan.zhihu.com/p/645732302 https://vllm.readthedocs.io/en/latest/getting_started/quickstart.html ##文档 加速原理&#xff1a; PagedAttention&#xff0c;主要是利用kv缓存 使用&#xff1a; #…

JVM | Java执行引擎结构及工作原理

引言 Java虚拟机&#xff08;JVM&#xff09;和其复杂性 在我们先前探讨的文章中&#xff0c;我们已经深入到了Java虚拟机&#xff08;JVM&#xff09;的内部&#xff0c;透视了其如何通过元空间存储类的元数据和字节码。JVM的设计初衷是为了实现跨平台兼容性&#xff0c;但随…

JavaScript构造函数

1、构造函数&#xff1a; 是一个函数&#xff0c;是通过new运算符进行调用&#xff0c;生成一个特殊的对象并返回。 function 函数名([参数]){ this.属性名 ‘属性值’ ... this.属性名 function([参数]){ 函数体语句 } } 通常情况下&#xff0c;建议构造函数的首字母大写 …

如何修复损坏的MP4视频文件?

随着智能设备拍摄功能的不断强大&#xff0c;随拍摄成本逐渐降低&#xff0c;越来越多的人喜欢用视频记录我们的生活&#xff0c;并上传抖音、快手、B站等视频网站 但在拍摄视频时也可能遇到一些突发情况&#xff0c;如手机没电断电终止拍摄、视频文件传输中断等&#xff0c;拍…

【Semidrive】解决 X9HP reboot 导致 Android 崩溃的问题

本篇文章介绍如何解决 X9HP 平台的 AP1 域中插着 u 盘时运行 reboot 导致 Android 系统崩溃的问题&#xff0c;软件版本是 X9 PTG4.0&#xff0c;硬件环境是 X9H 开发板 X9H_REF_A04。一、问题原因 在调试过程中遇到插着 u 盘时用 adb shell reboot 命令或直接在串口中 reboot …

国际网页短信软件平台通道搭建与后台定制-移讯云短信系统

国际网页短信软件平台通道搭建与后台定制-移讯云短信系统 这里先介绍下客户的定制需求&#xff0c;稍候放出开发构架和开发思路 我们根据市场需要&#xff0c;开发了一套可以接入国际通道的短信系统。 支持地区通道分流&#xff0c;支持关键字&#xff0c;关键词通道分流&…

ELK框架Logstash配合Filebeats和kafka使用

ELK框架Logstash配合Filebeats和kafka使用 本文目录 ELK框架Logstash配合Filebeats和kafka使用配置文件结构input为标准输入&#xff0c;output为标准输出input为log文件output为标准输出output为es input为tcpspringboot配置logstash配置 input为filebeatsfilebeats配置logsta…

【脑机接口】通过任务判别成分分析提高单独校准的 SSVEPBCI 的性能

题目&#xff1a;Improving the Performance of Individually Calibrated SSVEP-BCI by Task Discriminant Component Analysis **1. 摘要****2. 方法***A.任务相关成分分析**B.任务判别成分分析**C.评估* **- 结果****- 结论** 1. 摘要 脑机接口&#xff08;BCI&#xff09;为…

Python异步请求处理框架

在互联网时代&#xff0c;我们的程序需要处理大量的网络请求。为了提高性能和用户体验&#xff0c;我们需要一个高效的异步请求处理框架。本文将引导您从头开始编写一个Python框架&#xff0c;实现异步请求及响应管理。 设计思路与关键技术点 a. 异步编程的基本概念 异步编程…

权限提升-Linux提权-环境变量文件配合SUID提权

LINUX系统提权项目介绍 一个综合类探针&#xff1a; Linux&#xff1a;https://github.com/liamg/traitor 一个自动化提权&#xff1a; Linux&#xff1a;https://github.com/AlessandroZ/BeRoot 两个信息收集&#xff1a; Linux&#xff1a;https://github.com/rebootuser/Lin…

OpenWAF配置本地资源访问

OpenWAF配置本地静态资源安全访问 介绍 OpenWAF&#xff08;Web Application Firewall&#xff09;是一个开源的Web应用防火墙&#xff0c;用于保护Web应用程序免受各种网络攻击。它通过与Web服务器集成&#xff0c;监控和过滤对Web应用程序的流量&#xff0c;识别和阻止潜在…

搭建最简单的SpringBoot项目

1、创建maven项目 2、引入父pom <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version> </parent> 3、引入springboot-web依赖 <dependency…

UG\NX CAM二次开发 遍历组中的工序 UF_NCGROUP_ask_member_list

文章作者:代工 来源网站:NX CAM二次开发专栏 简介: UG\NX CAM二次开发 遍历组中的工序 UF_NCGROUP_ask_member_list 效果: 代码: void GetAllOperTag(tag_t groupTag, vector<tag_t> &vOperTags) {int count=0;tag_t * list;UF_NCGROUP_ask_member_li…