首页 > 其他分享 >VUE框架CLI组件化组件解绑事件实现------VUE框架

VUE框架CLI组件化组件解绑事件实现------VUE框架

时间:2024-09-17 14:22:39浏览次数:10  
标签:VUE console name 框架 doSome 绑定 log 组件 event1

<template>
	<div>
		<!-- 内置函数的实现步骤 -->
		<!-- 提供事件源,给事件源绑定事件,编写回调函数,将回调函数和事件进行绑定 -->
		<!-- 等待事件的触发,事件触发执行回调函数 -->
		<!-- 组件的自定义事件实现步骤 -->
		<button @click="Hello()">你好</button>
		<!-- 给User组件绑定自定义事件 -->
		<!-- 全称写法v-on:事件名称简写为@事件名 -->
		<!-- 对于组件自定义事件来说,要想让事件发生,就需要执行一段代码 -->
		<!-- 这段代码负责触发这个事件,让这个事件发生 -->
		<!-- 这个事件绑定在这个VC上 -->
		<User v-on:event1="doSome" @event2="doOther"></User>
		<!-- 简写形式 -->
		<!-- 事件绑定在哪个组件上,触发事件的代码就在哪个组件上编写 -->
		<User @event1="doSome" @event2="doOther"></User>
		<!-- 总结到目前,父子组件如何通信 -->
		<!-- props传值(父组件向子组件),自定义事件(子组件向父组件) -->
		<!-- 在父组件中定义一个方法,将方法传递给子,然后在子组件中触发这个方法,并传递参数 -->
		<!-- 第二种方法,也是更常用的,使用组件自定义事件的方式,也可以完成子向夫传数据 -->
		<!-- 在父组件绑定事件,在子组件触发事件 -->
		<!-- 子组件传递父组件是,父组件绑定,子组件触发(父绑定,子触发) -->
		<User ref="user"></User>
	</div>
</template>
 
<script>
import User from "./components/User.vue"
export default {
	name : "App",
	components : {User},
	mounted(){
		// 获取组件
		// 给ref=user的组件绑定event1事件,并且给event1这个事件绑定一个回调函数doSome()
		this.$refs.user.$on("event1",this.doSome);
		this.$refs.user.$on("event2",this.doOther);
		// 仅一次的设置方式
		// this.$refs.user.$once("event1",this.doSome);
	},
	methods : {
		Hello(){
			console.log("Hello Vue");
		},
		// doSome(name,age,gender){
		// 	console.log(name,age,gender)
		// }
		// 不确定个数,后期拓展写法
		// 仅限ES6的新语法...params
		doSome(name,...prams){
			console.log(name,prams);
		},
		doOther(){
			console.log("doOther");
		}
	}
}
</script>
 
<style>
 
</style>
<template>
    <div>
        <button @click="triggerEvent1()">触发event1事件</button>
        <button @click="triggerEvent2()">触发event2事件</button>
        <button @click="unbinding">解除绑定</button>
        <!-- vue实例销毁的时候,会把我们实例上绑定的事件全部解绑 -->
        <button @click="goodbye()">销毁VUE实例</button>
    </div>
</template>
 
<script>
export default {
    name : "User",
    methods : {
        triggerEvent1(){
            // 触发事件的方法
            // 代码意思是触发event1这个事件
            // this是当前的组件实例
            // $emit就是触发爆发
            this.$emit('event1',this.name,this.age,this.gender);
        },
        triggerEvent2(){
            this.$emit("event2");
        },
        // 解除绑定
        unbinding(){
            // 仅仅解绑this绑定的event1事件
            // this.$off('event1');
            // 全部解绑写法
            // this.$off();
            // 解绑多个写法
            this.$off(["event1","event2"]);
        },
        goodbye(){
            // 销毁完,全部的绑定效果全部失效
            this.$destroy();
        }
    },
    data(){
        return {
            name : "张三",
            age : 20,
            gender : "男"
        }
    }
}
</script>
 
<style>
 
</style>

标签:VUE,console,name,框架,doSome,绑定,log,组件,event1
From: https://blog.51cto.com/u_16322355/12036970

相关文章

  • 基于django+vue高校毕业论文管理系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育规模的持续扩大,毕业论文作为衡量学生综合素质与专业能力的重要环节,其管理工作日益复杂。传统的手工管理方式已难以满足当前高......
  • 【开题报告】基于django+vue网上购物商城系统(论文+程序)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着互联网技术的飞速发展,电子商务已成为现代商业活动不可或缺的一部分,极大地改变了人们的购物方式和消费习惯。网上购物商城作为电子商务......
  • 基于django+vue高校毕业班校务管理系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育规模的不断扩大,高校毕业班管理面临着前所未有的挑战。传统的手工管理方式已难以满足当前复杂多变的校务管理需求,特别是在学生......
  • 基于django+vue高校笔记分享系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,高等教育领域正经历着前所未有的变革。随着知识更新速度的加快和在线学习平台的兴起,学生们对于高效获取、整理与分......
  • 基于django+vue高校班级事务管理系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着高等教育规模的不断扩大与信息技术的飞速发展,高校班级管理面临着前所未有的挑战。传统的手工记录、口头传达等管理方式已难以满足日益......
  • Leetcode 952. 按公因数计算最大组件大小
    1.题目基本信息1.1.题目描述给定一个由不同正整数的组成的非空数组nums,考虑下面的图:有nums.length个节点,按从nums[0]到nums[nums.length-1]标记;只有当nums[i]和nums[j]共用一个大于1的公因数时,nums[i]和nums[j]之间才有一条边。返回图中最大连通组件的大小......
  • 【工具推荐】Agently:一款灵活易用的 AI 应用开发框架
    本文内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发、订阅专栏!专栏订阅入口| 精选文章 | Kubernetes |Docker|Linux |羊毛资源 | 工具推荐 |往期精彩文章【Docker】(全网首发)KylinV10下MySQL容器内存占用异常的解决......
  • springboot+vue智能家居项目管理系统【程序+论文+开题】计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着物联网、云计算、大数据等技术的飞速发展,智能家居行业正经历着前所未有的变革与增长。智能家居产品以其便捷性、智能化和高效能的特点,逐渐渗透到人们的日常生活中,成为现代家庭追求高品质生活的重要标志。然而,智能家居项目的实施涉......
  • springboot+vue在线药店管理系统【程序+论文+开题】计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着互联网的飞速发展,电子商务已经渗透到人们生活的方方面面,医疗健康领域也不例外。传统药店面临着运营成本高、顾客覆盖面有限、药品管理繁琐等挑战。特别是在疫情期间,人们对于安全、便捷的药品购买方式需求激增,推动了在线药店的快速......
  • springboot+vue一体化智能售后系统【程序+论文+开题】计算机毕业设计
    系统程序文件列表开题报告内容研究背景在当今数字化时代,随着产品种类与消费者需求的日益多样化,售后服务作为提升客户满意度与品牌忠诚度的重要环节,其效率与智能化水平直接关系到企业的市场竞争力。传统的售后系统往往存在信息孤岛、流程繁琐、响应滞后等问题,难以适应快速变......