00:00
接下来考虑第二个就是它得能调用到Dollar on Dollar off dollarmit,嗯,说老师我这好像好像就行吧,行啥呀,来各位就在这个school里面,你去给我调一下X身上的Dollar符啊,来你给我写写,我看看z.x.Dollar符啊来同学比如说呢,我想给这个X绑定一个事件,这事件呢,叫做hello事件,行,然后说呢,如果有人触发这事件了,我就执行这回调之前咱聊过要直接在这写,是不是得写箭头函数好了data是不是数据好了,在这consollo输出一句话叫做我是什么呢?School组建,然后咋的啊,那再来呗,叫做逗号收到了数据,哎,写上这个收到了数据,然后把谁呢data输出是不同学你觉得这样能行吗?必保报错,为什么呢?你自己瞧吧。同学,这是不念X自身有没有Dollar for on,没有,同学,你要知道它就是个普通的object类型的对象,如果自己身上没有Dollar for on,再找下去是不是找到了object的原型,那同学我问你有Dollar on吗?没有啊,是不是各位没有,你掉什么呢?哎,所以说各位现在啊,你写到这儿我只能说所有人能看到这个X了,但是X的值是不符合要求的,那我们就得整明白各位来,那个Dollar on Dollar off dollarmate都在哪儿呢呀,各位啊,那咱这样先把它入掉啊,然后回到school组件里面,Student的组件里边的这块呢,让他写着吧,是吧,反正找不到,就是安find也没啥影响。来到这儿,各位咱先别着急调这个到啊,咱们就看看这个this怎么就正常,它就能调到这个Dollar on同学问你this是谁,This是谁?This是不是这个school的组件实力对象。我问你他。
01:58
能不能调这个Dollar服on,能不能,那必须能是不,各位哎,它是可以的,咱之前用过吗?各位你看这个自定义时间里面,你打开哪个呢?这个这个APP,然后你往下找同学往下找找到哪儿呢?找到这块mount的吧,往上找找到这个mount的,诶哪去了呢?这my head在这咱们用那个mount的写,咱不用这种方式写的吗?各位,那你说在这儿是不是他能调到那个Dollar啊,那你看这个里边,你找到这个买hier组件在这里边同学你看这它干嘛呢?是不是能调这个emit,那这个this是谁?当然是这个买hier的组件实例对象啊,那咱们就分析一下这个组件实例对象怎么就能调用到这个Dollar服on呢?Dollar off dollar1mit它都能调用得到呢,各位,直接告诉你答案是因为这个Dollar for on,这个Dollar for of,还有这个DOLLAR1MATE都在view you的原型对象上呢。来,我们。
02:58
去验证啊各位在这删掉,回到这儿我给你输出一个人,你就明白了,各位谁呢?video.proto tap输出他的原型对象来到这边刷新一波,打开这儿,各位找有没有这个,诶,哪儿去了,是在这儿呢,这儿呢,第一个输出这是,那VC在这儿呢?打开同学找有没有dollarit,有,有没有Dollar of有没有Dollar啊,有没有Dollar ones有吧?哎,所以说各位你要是直接把这X呀写成一个对象,那不好意思了,他去找的时候,沿着圆形链,它找不到view的圆形对象,那我得把X的值设置成一个什么值,它才能去找到的原型对象身上的东西呢?无非两种写法,各位我就问你view原型对象上的属性和方法都是给谁用的,都是给VM或者是谁VC用的对不对,它是谁整个应用的那。
03:58
拗出来的view那个实例对象它是谁?是一个一个一个的组建实例对象,所以说同学把你这A1B2啊删了去吧,你在这要么写1VM,要么写一谁VC是不?各位你琢磨琢磨对吧?那咱们就挨个试一下,我想在这儿呢写一个VC,当然你不能直接写VC啊,那怎么办呀,去到上边创建好一个组件,那么就看看你能不能记住之前我们讲的API了。各位,我想创建一个DEMO组件,我得怎么写constant DEMO等于view点身上有个方法是不是叫做ten,然后里边是不是可以传一些这个组件的配置信息,那同学我现在不想给它传入任何的组件配置信息,因为我只想把这个DEMO组件当成一个傀儡在用,是不是?各位啊,那你这么写完了,各位,你的这个绿色的DEMO,其实他是谁呢?他是这个人你应该记得吧。
04:58
嗯,它是view component是不是,各位你体会体会view点返回值是啥?我问你是不是这个东西啊啊,那你得弄出来一个实例对象才可以,那我们之前是怎么写的呀,能出现的实例对象啊,我们之前是定义完了这个组件之后啊,我得这么写,得写这个组件标签是吧?各位诶别忘来回来咱这么讲的嘛,当年打开这儿找到那个非单文件组件,找到基本使用,各位往下滑,你看这干嘛呢?点extend,哎呀,传了这么多的东西,哎,各位形成了个啥school。
05:36
然后呢,你去注册这个死故,然后在上方呢,你是不是得写这个死故的组件标签呢,然后是不是才能出来那个实例对象啊啊咱之前不是说过吗?对不?哎,我们去写标签,人家帮咱们去你就啊OK,那所以说在这的同学说老师那你就写一个组件标签呗,对不,你就这么写呗,写一个DEMO杠这是啥呀。
06:00
对吧,各位这不行啊,说老师那我写写,哪有在这里边直接写这标签的呀,那你看一下效果,它编译他都不通过吗?是吧,各位回来那怎么办呀,同学亲自拗一个呗,Constant d等于它不就是拗了一下吗?诶回来没什么了不起的,我写一个new什么呢?DEMO,那你看习惯1NU这个DEMO吧,总喜欢把它首字母大写,那我这就大写好这同学你告诉我咋写小写的D同学成功了,我问你就绿色框里的代码全都运行完了,我这个小写的D是个什么?你告诉我这个小写的D是什么?是一个组件的实例对象,或者说是view component这个类的实例对象,或者这个构造函数的实例对象,是这意思不?各位,那我问你,其实这个小写的D就是我们嘴中的谁VC,那同学我再问你,VC能不能调用到Dollar啊,Dollar off Dollar forit能不能,能啊,OK同学,这回你还慌什么呢?回到这儿啊,我可以大胆的把它咋的解开了,this.x Dollar符啊,那其实这X是谁呀?各位回来,X是不是那个DD是不是VCVC能掉?OK,完事了呀啊说老师这回不报错,那肯定不报错呀,啊,不仅不报错,我告诉你各位还能真正的收到数据呢,看我把它注掉,然后回到这儿呢,我把这个输出呢也给你注掉啊,咱别在这儿一直看了,接下来呢,看着啊各位,我在这写一按钮,接下来我要实现兄弟组件间通信了,我要把student组件里。
07:35
边的学生名交给死故组件,弟弟要给哥哥传东西了,好,这写一按钮,叫做把学生名给谁school组件啊,那这就得写一个点击事件send student name发送学生的名字,那你就得配置一个MYS是不是?里边怎么写?各位在故组件里面你找到了我们之前所说的那个X那个傀儡,然后呢,给他绑了一个哈事件是不是?各位,其实不就是我们刚才那个图中的这条线嘛,哪条线呢,就是这条绿色的线对不对?你在A组件里面绑定了一个DEMO事件,只不过我们不是A,是school,只不过我们那个事件名不叫DEMO,那叫啥呢?叫hello,好了,回来各位,你这绑完了吧,那来把这一堆呢给它复制。
08:35
直过来this.x好,各位看好了,我又找到这个X了,然后呢,我调什么呢?Dollar符mate是不是触发时间,什么时间呢?哈喽,来,把数据传过去,先别写那名,就随便写个666各位这事儿就成了,来瞧效果刷新一波,来把学生名给死固组件走,你看。我是死故组件,我收到了666,是这意思不啊各位,现在其实一个雏形已经形成了,同学弟弟真正的把东西交给了哥哥,是不借助了谁呢?借助了这个傀儡,OK,同学,回到命点GS中,听我说你这傀儡啊写的有点不太好啊,这傀儡啊写的有点麻烦啊,还写了这么多代码弄出来1VC啊同学,我给你提个醒啊,用原型上的Dollar on Dollar off dollar1mate,不仅仅VC能调用得到,谁也能调用得到呢,VM呀,别忘了呀,对吧?各位啊,然后有些同学就说了,老师我好像明白了你的意思,是不是下边这个VM哎,就是真正管理整个应用这个VM你想让我用上它呀,就是这意思来各位啊,可能你会想到老师明白VM来,等于老师瞧我的啊,这个不要了,不写这么多,行了,我把这个给它。
09:57
往下放,这不就得了吗?啊老师你看这不是D了,是VM,那你看VM有啊,啊,圆形上的X是吧,是VM,老师这我就写完了呀,各位你看一下效果啊,这么写不对,为啥不对呢?你看他报的什么错误啊,他说不能够读取一个属性Dollar on在安范的身上,这是什么情况呢?跟各位说一下啊,同学你这么写呀,有点晚了。
10:22
同学,你这么写的意思就是十十一,十二十三这些行走完了,你是不是在做这件事儿,那同学你可要想好啊,十十一,十二十三这些行走完了意味着啥呀?意味着APP组件整个都已经放到页面上去了,那就意味着死故组件里边的这些话,Mon的里边的这些东西都已经执行完了,对吗?各位啊,执行完了,错误报完了,哎,然后呢,你出来了,哎呀啊,我要往你原形上放一个晚了是不?各位诶说老师那怎么办?那我放在这儿,那位老师这多好啊。
11:02
同学,你别忘了呀,你在这用VM的时候,VM是不是还没定义呢?哎呀,说是呢,老师这怎么办呀,说老师要不算了吧,算了吧,别用这VM了,刚才那VC挺好的,写两行就写两行吧,各位咱得这么说,你就回来像刚才这么写呀,也不能说不行,各位你也有这个傀儡对不对啊,就是写的麻烦一点嘛,来吧,同学不卖关子了,我直接告诉大家应该怎么写啊,是这么写的,确实啊,不需要你去写这么多的代码,去弄出来一个VC啊,要求你怎么做呢?各位,这里边有一个钩子,我不知道各位呢,还记不记得了,叫做before create,同学,Before create是什么呢?看一下我们之前总结的这个生命周期钩子,打开它before,同学,你觉不觉得是众多生命周期钩子中最开头的一个before great,那么我问你,在这个里面同学他的是谁?他的this是谁?
12:02
是不就是当前的这个new出来的VM呀,那我问你在这个before里,我问你各位模板解析了吗。没有,甚至我告诉你同学,数据监测和数据代理是不是都没完成呢?那也就是说你借助这个钩子,在这个钩子里面,你把你应该做的事儿做好了,原型上该放的东西你放好了,随后呢,模板开始解析了,对不对,什么死故组件,什么APP组件开始往页面上放了,但是等死故组件执行的时候,各位你注意了,其实你该放的东西是不是已经放好了呀,诶所以说他就不会报错了回来,那所以说你把这句话复制给他往这一写啊,说老师明白别写D写VM,同学不用这么写啊,还在这收VM在这用,同学首先你这么写也不对,对不,你得这些东西执行完了,你才有这VM,哪能在这里边直接用这M呢?说老师那怎么办呢?别忘了呀,生命周期钩子中的this,咱刚才才说完,是不是本身就是这个view实力啊,各位体会体会,多么的巧妙啊,我在b before created里,诶,往你原型上放1X,诶,这。
13:11
X的值呢,就是当前这VM同学没有必要再去拗一个VC了,对不对,各位OK,回来,这不就实现了吗?刷新一波走你OK不,哎,好了回来,所以说同学们这才是最标准的一个写法,叫做安装全局事件总线啊,一般来说同学我们不叫X,那你知道叫什么吗?叫这个名Dollar bus,哎,Dollar福bus为什么叫这名啊,因为bus符合我们所说X啊,就是那个傀儡的气质啊,为啥说符合他的气质呢?各位你看一下,来看这图X啊同学咱说咋的,谁都能找到他,给他榜事件来者不拒啊,谁呢也都能找到他去触发事件,是不是也是来者不拒啊,啊说老师,那我明白了,那这个bus的意思就是公。
14:11
动汽车呗,是不,谁都能坐这个公共汽车,那就叫做这个同学,其实啊,你这么理解到也行是吧,说X啊,大家都能借助他去干点事儿,所以说呢,哎,就如同咱们的公交啊,地铁也行,你这么理解,但是标准点的理解,我告诉你各位,这个bus还有一个含义,对不,叫什么呢?往下来叫做总线,哎,除了有这个公共汽车,巴士公交车,还有一个词儿叫总线,所以说我们管它叫做全局事件总线,为什么叫全局事件总线啊,因为全局所有的VC,还有那个VM都能看到它,所以说接下来你知道怎么玩了,把它复制来到这儿,别叫X Dollar服bus说老师那为什么加个Dollar服呢?是为了迎合view的设计,View不是说给程序员用的那些API,一般身上不都带个Dollar符吗?在这儿他俩这么写的,那所以说这边Dollar bus,那你说这边是不是也是Dollar福呀,OK,这。
15:11
不就可以了吗?同学体会体会,死故里边能找到这个傀儡,给傀儡绑了个事件,那么这里边也能找到这个傀儡啊,去触发傀儡的事件,那在这同学来吧,别客气,This name是不是把学生的名字传过去啊?那你这边不就收到了吗?是这意思不?各位来,最后看一眼,刷新一波走,你数据是不是来了?张三哎,但这里面呢,还有一个细节上的问题,可能有些同学说,老师啊,那这X也太累了呀啊,他确实累。啊,还有同学说,哎,老师,那这还有一个问题啊,你就比如说老王绑定了一个DEMO时间,那是不是意味着我写的时候我就不能绑定这个DEMO时间了啊,那肯定啊,那肯定啊各位这傀儡只有一个呀,那人家那边用了把DEMO给占用了,那你肯定得换个名啊,对不?啊说老师那这不容易造成那个名字的冲突吗?所以说呢,我们在做项目的时候,一般在这儿呢,一般写一个文件夹,你比如说叫做con之类的,然后这里边呢,比如说写一些这个啊constant什么常量啥的,对吧,你比如说在这里边我配置一个,比如说constant,哎,我要用这名了啊,叫做DEMO,然后在这儿我写一个什么东西啊,然后别人呢,就不能再用了,就这意思啊,肯定有办法得去处理一下,对不对,各位啊,还有就是各位你听我说你最好啊,听我说最好做一件事儿,就是你是不是在这个死故组件里边给这个傀儡绑定的事件。
16:40
为什么绑这个事件呢?是因为你想借助这个傀儡得到数据对不对?各位,那么希望各位呢,这样就是在这个组件呢,销毁之前,最好把这个傀儡身上这个哈事件呢给它解绑,为啥说我要这样做呢?各位你想想啊,所有人都在用这个Dollar bus,所有人都在用这个总线,那你说如果有一天你的这个组件呢,已经被销毁掉了,说白了你那组件都已经不用了,那你说你在这还站着这个Dollar for bus身上的hello是不是就不太好啊?哎,所以说一般呢,我们会做这么一件事儿啊,那钩子叫什么名来着,Before this destroy对不对?销毁之前,然后你做一件事,找到那个傀儡,诶,然后点Dollar符,不是on了,是off,然后把谁关闭呢?这个hello同学呀,你可千万不要在这儿啥也不写呀,你要是啥也不写就毁了。
17:38
你这个组件一旦被销毁了之后,你发现所有人给那个傀儡身上绑定的事件全都废了,那你可惹祸了呀,啊回来在这儿,诶这么写啊,说老师那之前咱们讲那个自定义事件的时候,你怎么不推荐我说在这儿这个销毁一下呢?是因为这样,各位之前讲那个自定义事件的时候啊,是这样来,你打开看一下这个自定义事件,找到这个,比如说这个APP吧,啊你看你给这个故诶或者不是school,说这个student啊,School咱是通过那个prop传的同学这个student,你给这个student你往下找,找到这儿你是不是给这个student组建实例绑定了一个艾特硅谷自定义事件,说老师那你怎么没有在这个student里面写那个什么before try,你去进行那个关闭呢,或者说这个解绑这事件呢,那是因为如果student这个组件被销毁了,它整个VC都没了。
18:35
是不?各位你琢磨琢磨,我APP里边确实给他绑定了一个自定义事件,但是如果有一天这个student不想活了,同学,那就直接VC就被干掉了,被销毁了,那你身上的自定义事件呢?对吧,那肯定也没了嘛,是吧,但是傀儡可不是,各位你觉不觉得就是你这个student组件有一天没了,组件有一天没了,但是谁一直在,谁一直在,各位傀儡一直在,所以说该用的时候你就用这个傀儡啊,但是用完了一定把傀儡身上的那个事件呢给他解绑,OK,同学,这就是什么呢?全局事件总线,你体会体会,各位你只要能握住这个人。
19:13
Dollar for bus,你可以在任何的时候,想得数据就得数据,想发数据就发数据,对不?各位,那你看看,回头再品味品味这个图是不好了,那么这一小节的东西呢?哎,咱先不停是吧,总结一下各位来回来在这儿呢,嗯,打开画到最后啊全局事件总线啊,也有一个英文名字叫做global event bus啊全局事件总线嘛,哎,是一种组件间通信的方式,适用于任意组件间通信。那如何安装全局事件总线呢?相对来说标准点的做法呢,是在这写before create啊,View点圆形对象点Dollar bus等于this安装全局事件总线Dollar for bus就是当前应用的VM,那如何使用呢?接收数据的地方你得这么写mounted,哎,就比如说这个组件挂载了,然后this.dollar for bus啊,然后在这呢,哎,写this.demo提前把这DEMO配置好,或者或者各位不写红色框里的,直接把回调写在这儿。但是你得写成一。
20:14
一个什么呢?箭头函数,咱之前说过对不对?各位啊,那提供数据的人呢,This点啊找到那个傀儡一,那个1MIT,然后呢,呃,写那个事件的名字,完了带数据是不是就可以了,然后第四个最好在before destroy这个钩子中,用of去解绑当前组件所用到的事件,最好解绑一下,要不他身上的东西太多了,好了,这回咱再听。
我来说两句