不太理解这段代码的意思,这里是怎么看到父组件有 update:show 这个事件的?

讨论数量: 2
pardon110

.sync用vuejs官方的话翻译过来,是个指令修饰符,其具体意义由该指令定义给出。如果你想仅从名称,是不知道干什么,需要从它的定义入手,道理好比给你一个函数名,你是不知道这个函数做了什么,要知其义,就必须参阅函数定义。换句话来说,vue中的模板只是一种另类的接口描述,其意义由vue编译器解析,参见地址

4年前 评论

/:show="msgShow" 表明Message组件的show和当前组件的msgShow建立了对应关系,
@update:show="val => msgShow=val" 自定义了一个事件,专由Message组件调用,来修改当前组件的msgShow值,msgShow值的改变又可以反应到Message组件的show属性。

为什么要搞这么复杂,应该是因为Props属性一般是由父组件来改变,很少由自身来修改,如果是自身来修改的话则一定要保证父级的对应属性也要相应改变,可这样会导致很大的开销,所以不如就直接用事件来修改父级已达到修改自身的目的。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!