W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
建立父子組件之間的關(guān)聯(lián)關(guān)系,進(jìn)行數(shù)據(jù)通信和方法調(diào)用,基于 provide 和 inject 實(shí)現(xiàn)。
在父組件中使用 useChildren 關(guān)聯(lián)子組件:
import { ref } from 'vue';
import { useChildren } from '@vant/use';
const RELATION_KEY = Symbol('my-relation');
export default {
setup() {
const { linkChildren } = useChildren(RELATION_KEY);
const count = ref(0);
const add = () => {
count.value++;
};
// 向子組件提供數(shù)據(jù)和方法
linkChildren({ add, count });
},
};
在子組件中使用 useParent 獲取父組件提供的數(shù)據(jù)和方法:
import { useParent } from '@vant/use';
export default {
setup() {
const { parent } = useParent(RELATION_KEY);
// 調(diào)用父組件提供的數(shù)據(jù)和方法
if (parent) {
parent.add();
console.log(parent.count.value); // -> 1
}
},
};
function useParent<T>(
key: string | symbol
): {
parent?: T;
index?: Ref<number>;
};
function useChildren(
key: string | symbol
): {
children: ComponentPublicInstance[];
linkChildren: (value: any) => void;
};
參數(shù) | 說(shuō)明 | 類(lèi)型 |
---|---|---|
parent | 父組件提供的值 | any |
index | 當(dāng)前組件在父組件的所有子組件中對(duì)應(yīng)的索引位置 | Ref<number> |
參數(shù) | 說(shuō)明 | 類(lèi)型 |
---|---|---|
children | 子組件列表 | ComponentPublicInstance[] |
linkChildren | 向子組件提供值的方法 | (value: any) => void |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: