00:00
来各位接着说这个自定义事件在上一小节呢,我们学会了这种方式,哎,还有这种方式去给一个组件实例绑定自定义事件,那么这一小节呢,咱们就来聊聊如何给一个组件实例解绑自定义事件,可能有些同学啊会这样说说老师,我觉得没有必要解绑,就拿你这个艾特硅谷这个自定义事件来说,绑定上了,那就绑定上了,永远我也不解绑,如果你真不想用行的老师你别写这段代码,那不就得了吗?嗯,你这么做吧,也可以各位,但就是有点不太好,因为你想想各位,你这种做法就是这个艾特硅谷自定义时间永远就存在他身上了,纵使我已经不用了,依然存在他身上,是不不太好,哎,就有点像我们说那个定时器啊,只要开启了,你最好在一个合适的时候啊,去给它关闭掉,那我就问各位,我不关行不行,我就等着用户去关网页行不行,诶也行,但是做的好一点就是。
01:00
既然不用了,那就给他解绑,OK,好来咱说说如何去解绑,各位原则都是一样的,你给谁绑的自定义事件,你就找谁处发事件去,那同理你给谁绑的自定义事件,那你就找谁干嘛解绑去,那所以说找谁找他解绑去啊,那在这儿呢,各位把这个呢,还是给它解开往上滑,然后呢,我给你加一个按钮啊,各位叫做解绑艾特硅谷事件,解绑艾特硅谷事件,因为你之前绑的是艾特硅谷嘛,来给他一个点击事件走绑定那个叫band,那么解绑,哎,我给他起个名叫m band啊,这只是一个事件的回调啊,不是那API的名字,来走写一个M班在这里边,你在写那API的名字,同学是不是找这个人去处发事件去啊,那同理你得找这个人谁呢?Student组建的实例,对象就是那VC找他干嘛去解绑事件,那调哪个API。
02:00
来解绑呢,各位,哎,有这么一个API叫做到了福off同学,Off本身就有关闭的意思是不,哎,那在这儿呢,就作为解绑去理解了,说解绑谁啊,你看你绑定的时候名字得写好,你触发的时候名字写好,那同理嘛,你解绑的时候是不是得说好吗?哎,好了,各位看一下效果啊,刷新来到控制台,如果我要是不解绑,那就正常用呗,走走走走,那如果解绑呢,看一下效果啊走解绑了吧,来再点是不是不好用了,哎,OK,但是这种写法呢,各位只适用于解绑一个事件,哎,解绑一个自定义事件,那如果我有多个,那怎么办呀?来给他写多个啊在这呢,我再给他来一个自定义事件叫什么名呢?叫DEMO啊,只要DEMO这个自定义事件被触发了,那我就调M1这个函数,那当然了,在下边是不是得给人家准备好一个M1呀,来走上。
03:00
然后colo叫做DEMO,事件被触发了,好,各位,接下来咱试试啊,回到这儿,同学我就不再写一个按钮了啊,说什么触发什么什么事件,我就这样把名给APP的同时啊,我再触发一个事件走,不需要传什么参数了,主要是验证它能不能执行,在这写什么呢?写DEMO在这儿你可别写M1啊各位那不行,M1是指人家的回调名,对吧?事件名叫DEMO,好,写在这儿看一下效果啊,各位来刷新一波啊,走走,你看两个事件都会触发对不?那如何解绑多个事件呀,就不能这么写了,来复制一下API呢,还是那个API Dollar off,只不过哎,有同学猜了说老师我知道了,再传一个叫做DEMO,同学确实得传两个,但不是两个参数,是写在一个数组里面传两个事件名,哎,你得这么写,OK,这就是解绑几个。
04:00
叫做多个好来咱测试一下啊各位首先测试一下这儿吧,各位来走,我把这个给它关掉,我这么写就是解绑了谁艾特硅谷,但是他解绑了吗?没有,所以说你看一下效果啊,各位刷新一波,一上来呢,他两个都能触发,然后我点了一下这个,同学谁被解绑了艾特硅谷,那等我再点的时候,当然只剩DEMO了是不?哎,好了,回来把这个呢注掉,这个呢解开,这回可是两个都解绑啊,来看一下效果刷新,现在两个都能用走都解绑了,再点没效果了是不?哎,还有一种更加暴力的写法,还是这个al API,但是呢,你看好了里边啊,嘿,我什么都不传了,这啥意思呢?同学无非两个极端,第一个极端就是你这么写相当于没写,为啥呀,因为你没给我传吗?你到底要解绑哪个,还有另外一个极端,你能猜到各位,哎,那就是有一个算一个,不管你绑定了几个,所有的自定义事件咋的,全都给你。
05:00
绑,那这写一个叫做所有的自定义事件,诶这就比较暴力,来我们测试一下啊各位刷新一波不解绑那就都能用,那解绑呢啊来再点你看就都不能用了啊一个多个,这是什么呢?所有的好,那既然聊到这儿了,各位我得完成当时我对你的承诺,哎,我对你承诺什么呢?来打开这个图,不知道各位啊还记不记得了。细心的同学啊,你拿个芯本本记上对吧?你听老师课的时候,每一次老师讲到这儿的时候说,哎呀,同学们这块呢,咱先不理解啊,以后讲到那儿的时候啊,会跟大家说,你可以拿一个小本本记上,看看老师回头能不能完成他的承诺啊,来同学,这个东西来吧,当时啊,咱们在讲这个VM销毁的时候啊,我是这么跟大家说的,哎,我说同学VM一旦销毁了,那么就关闭掉了所有的监听watchs这块咱们验证过了,确实咋的,哎,把那些东西都给它拆卸掉了,这词啥意思?这个词本身不就有拆卸摧毁的意思是不?各位啊,它除了移除掉所有的waters,还会移除什么呢?所有的子组件,还有什么呢?事件监听器,各位我问一下,当时咱们验证这儿的时候,是不是我带着大家验证了一个事儿,就是什么呢?你销毁了VM之后,原生的盗墓事件,我问你能不能用,能用,然后当时我怎么解释的,我说同学啊,他这个移除啊,或者说这个拆卸掉这个事件监听啊,不是指。
06:26
原始的盗墓监听啊,是指什么呢?自定义事件是不?各位来在这儿呢,咱们验证一下,回到这个页面里,同学目前是这个状况啊,这是VM,这是一个VC组件,这也是组件,组件是这样的,就这些VC啊,同学也都能用那些生命周期钩子函数啊,那当然这个VM肯定是能用,只不过我们当时讲那个生命周期图的时候吧,各位咱用的是哪个,咱用的是VM去分析的问题,但是你一定要注意啊,各位就是那么多组件的实例对象都能用那些生命周期钩子啊,什么this choice啥的都能用,所以说接下来呢,我给你做两个测试,各位第一个测试就是我让这个student组建实力销毁一下,看看效果,然后我再让谁呢最跟上那个人VM再销毁一下,然后让大家呢,再看看效果,OK好了,咱慢慢来,回到控制台里面,然后呢,打到代码,我找到student组件,在这儿呢,加一按钮。
07:26
叫做什么呢?啊,销毁当前student组建的实力对象,也就是我们嘴中的谁呢?VC好了,各位来吧,给个点击时间,起个名death死吧是吧?哎,来复制,虽然有点不太好听啊来,在这儿走着里边怎么办?This,哎,同学,This是谁VC吧?那你说能不能调那个destroy是可以的呀?啊VC和VM很多东西都是一样的,来同学走着,我这一写不要紧啊同学,咋的啦,那你就是销毁了当前,来给这复制一下,销毁了当前的student组件实例销毁了嗯,加个了好了,看一下效果啊各位啊,那这样吧,给大家写的再明白一点,来同学回顾一下之前写的东西,我这来一个number,初始值几呢?让它是零啊,然后这个number啊,给他展示到这儿,再来一个H2。
08:26
叫做当前求和为展示这个number,然后在这儿呢再来一个按钮,叫做点我number加加,那在这呢写一个艾特福click,然后啊,我不直接写那个number加加,我在这写个ADDDD对吧?哎,添加好了,在这呢,我再给你补一个ADDDD走你走,然后这呢来一个逗号,里边肯定做要干的事儿是不是this.number加加,然后同时呢,我再输出一个东西,就是addd回调被调用了,好了看效果啊各位回来刷新一波,目前呢是零来往这边点啊,目前是零走然后呢点我number加加走走走走走是吧,每次都能加,哎,这会儿呢还被调用,那接下来你看好了,各位刷新一波,我把student这个实例给他销毁走同学是不是销毁了?嗯,销毁了之后。
09:26
你发现原生的这些盗墓事件,诶同学依然能调用,但是响应是丢了,是不是?各位,之前这问题咱聊过了,OK,好,再刷新一次,这回你瞧着各位,我销毁了student组建实力,这个时候同学我不点解绑啊,我不点解绑,我都不用点解绑,这个时候你点这个把学生名给APP,你发现根本就不好用了,这就强有力的证明了各位,一个组件如果被销毁了,那么他身上的那些自定义事件咋的也就都不奏效了。OK,在这补一句各位,就是销毁后所有student实例的自定义事件全都不奏效了啊,说的再直白点,各位,你那个事件呢,是绑在VC身上的,VC都被销毁了,那你说那些事件还能用吗?肯定是不能的啊,然后呢,再验证这么一个问题,各位就是回。
10:26
这个m.GS里边啊,然后在这儿呢,既然它是VM,各位我给你写一个mon的这钩子,然后里边呢,我给你开启一个那个定时器,定时器里边呢,做一件事儿来写上这个set time out,等多久呢?我让他等三秒钟,哎,然后呢,进行一个自我的销毁,在这写this点哎,这个this代表谁?各位这个this代表谁代表VM了对不?各位点然后呢,This TY,当然别忘了这个Dollar乐符,好了,写个小括号看一下效果啊各位来回到页面当中啊,是几秒钟之后销毁,三秒钟之后销毁的是谁?VM,哎呀,同学,我销毁这人呢,可厉害了,我销毁的是这个里边的他是不?哎来看一下效果啊刷新,然后呢,我我调好了,我点这腾讯不用点别的地方点这啊点这来刷新走能不能用,是不是一直能用,然后你等着各位你等着,诶现在不好用了,你看来我给你。
11:26
半点敲来,同学往这边调一调啊,调一调来清掉啊,走走走,等三秒之后,诶,是不是不好用了,为什么VM都没了,那它所有子组件咋的也都被销毁了,所有子组件里边的自定义事件咋的也被销毁了,这不就是图中所说的这个吗?子组件以及子组件的什么自定义事件是不是都被销毁了,但是谁不受影响呢?之前咱就聊过这玩意儿,它不受影响是不各位原生的这个事件吗?好,咱们回来来,我把这个给它注释掉,我们就验证完了。哎,那这一小节呢,咱们说的就是如何解绑一个事件,你可以借助这个Dollar off去彻底给它解绑掉,或者是如果你这个组件以后被销毁了,由于某种原因被销毁了,各位,现在我们所说的这个销毁,无论是VM的销毁还是VC的销毁,我就问各位,是不是都是属于咱们,之前开玩笑的说自杀,我想。
12:27
那V毁掉怎么毁掉,亲自去Dollar,那我想让一个C呢,也是亲自的Dollar,那我各位以后有可能是不是咱开玩笑的说是他杀对吧,不是亲自把自己毁掉了,是由于某种原因啊,其实就是我们讲路由的时候,你切走了这个组件呢,就被销毁掉了,那么他身上的这些自定义事件咋的也就都失效了,OK,各位好,那这小节呢,我们听一下。
我来说两句