首页 > 其他分享 >vue--day46---组件自定义事件的解绑

vue--day46---组件自定义事件的解绑

时间:2023-07-26 23:23:01浏览次数:41  
标签:vue 自定义 -- student 组件 解绑 smytest

查看vue 版本 命令 npm list vue

1. App.vue

<template> <div > <h1>{{ msg }}</h1> <!--通过父组件给子组件传递函数的props 实现 子给父传数据--> <School :receiveSchoolName="receiveSchoolName"></School> <!-- v-on 在student 组件标签上 所以说是在给 student组件的实例对象vc 上绑定事件,事件名字是smytest 有人触发了这个事件,receiveStuedntName 函数就会被调用 --> <!--通过父组件给子组件绑定一个自定义事件实现 子给父传数据 第一种写法 使用@ 或者v-on --> <Student v-on:smytest="receiveStuedntName" @demo="m1"></Student> <!--触发一次--> <!-- <Student v-on:smytest.once="receiveStuedntName"></Student> -->
<!--通过父组件给子组件绑定一个自定义事件实现 子给父传数据 第二种写法 使用ref--> <!-- <Student ref="student"></Student> -->   </div>     </template>
<script> //样式的引入和这里有关系 import School from './components/School.vue'; import Student from './components/Student.vue';

export default { name: 'App', components: { School, Student,   }, data(){ return { msg:"欢迎学习vue" }   },
methods:{ receiveSchoolName(schoolName){ console.log("app组件收到了学校的名字信息",schoolName); },

//receiveStuedntName(studentName,...a){ 接收多个参数,第一个参数 后面的几个参数全部封装为数组 receiveStuedntName(studentName){ console.log("app组件收到了学生的名字信息",studentName); }, m1(){ console.log("demo事件被触发了"); }
}, // mounted(){ // //this.$refs.student.$on('smytest',this.receiveStuedntName)
// setTimeout(()=>{
  // this.$refs.student.$on('smytest',this.receiveStuedntName) // //触发一次 // // this.$refs.student.$once('smytest',this.receiveStuedntName)
// }) // }  
  } </script>
<style scoped>
</style>   2.Student.vue <template> <div class="student">   <h2>学生姓名{{name}}</h2> <h2>学生性别{{sex}}</h2> <h2>当前求和为{{number}}</h2> <button @click="add">点我number++</button> <button @click="sendStudentName">点我将学生名字传递给App</button>
<button @click="unbind">解绑自定义事件</button>   <button @click="death">销毁当前student组件的实例</button>   </div> </template>

<script>

export default { name:"Student", data() { return {   name:"张三", sex:'男', number:0 } },
methods: { add(){ console.log("add函数被调用了"); this.number++; }, sendStudentName(){ // 触发Student 组件实例对象上的 smytest 事件 // 如果参数过多 1.可以把数据封装为对象 // 2. this.$emit('smytest',this.name,99999,8888,4444) this.$emit('smytest',this.name,99999) this.$emit('demo')   }, unbind(){ //this.$off('smytest')//解绑一个自定义事件 this.$off(['smytest','demo']) //解绑多个个自定义事件 //this.$off()// 解绑所有自定义事件 }, death(){ this.$destroy();// 销毁了当前student组件实例,销毁后所有的student 实例的自定义事件全都不奏效 },     },         } </script>
<style scoped> /* 组件的样式 */ .student{ background-color:cadetblue;   }
</style>


标签:vue,自定义,--,student,组件,解绑,smytest
From: https://www.cnblogs.com/satisfysmy/p/17583778.html

相关文章

  • 【手机】三星手机刷机解决SecSetupWizard已停止
    三星手机恢复出厂设置之后,出现SecSetupWizard已停止的解决方案零、问题我手上有一部同学给的三星GT-S6812I,这几天搞了张新卡,多余出的卡就放到这个手机上玩去了。因为是获取了root权限的(直接使用KingRoot就可以),有个APP安装不上,于是把apk直接复制到/data/app下,想强制安装一下,结果......
  • Java方法详解
    Java方法详解什么是方法-System.out.println(),那么她是什么?-Java方法是语句的集合,它们在一起执行一个功能1方法是解决一类问题的步骤的有序组合2方法包含于类或对象中3方法在程序中被创建,在其他地方被引用-设计方法的原则:方法的本意是功能......
  • Js基础语法
    操作DOM节点例如:fuctiona(){//获取某个标签varnode=documrnt.getElementById("node");//获取标签里的内容(包括子标签和文本)varhtm=node.innerHTML;alert(htm);//修改该节点里的内容node.innerHTML="<p>修改后的内容</p>";} ......
  • Java面试题 P8:接口和抽象类的区别
    普通回答:1、抽象类可以有抽象方法和实现的方法,可以存在普通成员函数,而接口中只能存在publicinterface方法。2、抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是publicstaticfinal类型的。3、抽象类只能继承一个,接口可以实现多个。抽象类和接口的异同点 ......
  • Win11下MySQL开机自启失效排除思路及解决
    问题描述MySQL服务设置了自启仍然无法启动错误排查上次关机前数据库仍可用,无不良操作,初步排除数据库自身问题设置了开机自启,所以开机时系统调用了开机启动,但失败了,查看windows系统日志win+r输入eventvwr.msc回车根据开机时间定位到错误,可知是ntdll.dll模块的问题尝试用......
  • Python使用 - array
    常用操作 常见用法arr1=array.array("i",[1,2])#元素的字节数print(arr1.itemsize)#4print(len(arr1))#2#添加元素arr1.append(3)arr1.append(4)print(len(arr1))#4print(arr1)#array('i',[1,2,3,4])#修改元素arr1[0]=10print(arr1)#......
  • C语言中的关系操作符
    C语言中的关系操作符C语言用于比较的表达式,称为关系表达式(relationalexpression),里面使用的运算符就称为"关系运算符"(relationaloperator),主要有下面6个。>大于运算符>=大于等于运算符<小于运算符<=小于等于运算符==相等运算符!=不相等运算符下面是一些例子。a==b;......
  • 问题--如何自定义化新标签页?
    1.问题平时的新标签页过于单调,且不好使用,问题如题所示2.解决方式使用扩展InfinityNewTab,这是Google的一款扩展软件安装路径:https://chrome.google.com/webstore/detail/infinity-new-tab/dbfmnekepjoapopniengjbcpnbljalfg/related可以自由的设计自己的新标签页如图所示......
  • 2023.7.26
    今天上午没有出去跑步,在家里跳了帕姐的训练,结果没到三分之一就累的要死(太脆了)中午又被热的头昏不过下午醒来以后拿出来了我的cos服又试了一下我的蝴蝶忍技术比以前好多了下次继续努力!......
  • Python使用 - 字符串和二进制的转换
    字符串和二进制的转换,需要用到编码(比如:utf-8,gbk),它起到的主要作用:1)字符转二进制时:根据字符,去编码表查询该字符的二进制值2)二进制转字符时:根据二进制值,去编码表查询该二进制对应的字符 #字符转二进制,也叫编码str_bytes="123abc中文".encode("gbk")print(type(str......