欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue 父子組件checkbox

在Vue的前端開發(fā)中,我們常常需要使用checkbox組件。而在Vue的父子組件中,如何使用checkbox組件呢?

首先,在父組件中,我們需要定義一個(gè)data屬性來存儲(chǔ)checkbox的選中狀態(tài):

data: {
checkList: []
}

此時(shí),我們可以在模板中使用v-for來動(dòng)態(tài)渲染多個(gè)checkbox,并綁定到checkList數(shù)組中:

<div v-for="item in itemList" :key="item.id">
<input type="checkbox" :value="item.id" v-model="checkList">
{{item.name}}
</div>

在子組件中,我們需要依賴props來接收父組件傳來的數(shù)據(jù),包括checkbox的選中狀態(tài)。首先,定義一個(gè)props數(shù)組接收checkList:

props: {
checkList: {
type: Array,
default: []
}
}

然后,在子組件的模板中,我們也使用v-for來動(dòng)態(tài)渲染checkbox,并綁定其選中狀態(tài)為父組件傳來的checkList數(shù)組中的值:

<div v-for="item in itemList" :key="item.id">
<input type="checkbox" :value="item.id" :checked="checkList.includes(item.id)" @change="changeHandler"> 
{{item.name}}
</div>

注意我們使用change事件監(jiān)聽checkbox的改變,并且定義了一個(gè)changeHandler方法來實(shí)時(shí)更新父組件中checkList的值:

methods: {
changeHandler() {
this.$emit('update:checkList', this.checkList)
}
}

此時(shí),我們已經(jīng)實(shí)現(xiàn)了在父組件中動(dòng)態(tài)渲染多個(gè)checkbox,并獲取其選中狀態(tài),同時(shí)將選中狀態(tài)傳遞到子組件中并動(dòng)態(tài)渲染。但是當(dāng)我們?cè)谧咏M件中選中一個(gè)checkbox時(shí),父組件的checkList并不會(huì)實(shí)時(shí)更新。為了實(shí)現(xiàn)此功能,我們需要使用.sync修飾符來實(shí)現(xiàn)雙向數(shù)據(jù)綁定:

<child-component :checkList.sync="checkList"></child-component>

現(xiàn)在,無(wú)論是在父組件中還是子組件中,只要選中了一個(gè)checkbox,另一個(gè)組件的checkList也會(huì)實(shí)時(shí)更新。

總結(jié):通過使用v-model和.sync修飾符,我們可以在Vue的父子組件中實(shí)現(xiàn)checkbox的雙向數(shù)據(jù)綁定,并實(shí)時(shí)獲取其選中狀態(tài)。