面試題.sync修飾符

vue規(guī)則:組件不能修改props拿外部數(shù)據(jù)
this.$emit可以觸發(fā)事件,并傳參
$event可以獲取$emit參數(shù)

渲染了app是一個(gè)組件template長(zhǎng)這個(gè)樣子

image.png

刷新運(yùn)行
template的class叫app ,App.vue說(shuō)我有多少錢(qián){{total}}

下面有個(gè)子組件
image.png

子組件是從Child.vue怎么使用呢?
一定要聲明下components:{Child: child}
看child怎么接受的

export default {
  props:["money"]//意思是接受一個(gè)外部數(shù)據(jù)名字叫money
};

于是把money傳給child

<Child : money="total"/>//我把data里的total告訴你

Child的結(jié)構(gòu)

<div class ="child">
  {{money}}
<button @click = "$emit('update:money',money-100)">
      <span>花錢(qián)</span>
</button>

錢(qián)是外部數(shù)據(jù) 修改不了


image.png

怎么申請(qǐng)呢

子組件當(dāng)前實(shí)例this.$emit,可以修改為$emit
夫組件監(jiān)聽(tīng)事件:v-on:我要花錢(qián)="total = $event " ; $event不是依附于this上,而是單獨(dú)一個(gè)變量
想獲取$emit后面的參數(shù),就用$event

過(guò)程

爸爸給兒子一個(gè)money,兒子可以看到這個(gè){{money}}。想花錢(qián)的時(shí)候不能直接,于是觸發(fā)一個(gè)事件@click ="$emit('useMoney', money -100)".
爸爸發(fā)現(xiàn)他兒子有這個(gè)事件,久會(huì)把他兒子傳過(guò)來(lái)的參數(shù)加到錢(qián)上通過(guò)$event
<Child : money="total" v-on:useMoney="total = $event"/>

最后根據(jù)vue規(guī)則useMoney改成update:money

在App.vue的模板里
<Child :money.sync = "total"/>
有人在child上綁定了v-on和emit,這就是事件的發(fā)布訂閱

image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容