组件间通信--ref与$parent

ref:给子组件的标签绑定ref属性,子节点把对应的数据暴露出来,可以以此修改子组件的值

$parent:子组件通过固定参数,拿到父组件暴露出去定义的方法或者数据,并操作

ref的用法:

①给子组件标签绑定ref

 <Son ref="son"></Son>

②在子组件中用defineExpose暴露需要被父组件调用的值

import { ref } from "vue";
let money = ref(666);
defineExpose({money}) //将儿子的money对外暴露

③父组件定义son变量(这个son变量和ref的命名需要一致)

let son = ref()

const handler = ()=>{
  son.value.money -= 10//使用儿子的变量
  // console.log(son.value.money)
}

$parent的用法

①父组件暴露数据

//对外暴露money
defineExpose({money})

②子组件定义方法,并有$parent参数,必须是$parent参数

 <button @click="handle($parent)">点击我,爸爸给我一万元</button>

③子组件中使用父组件方法

import { ref } from "vue";
let money = ref(99999);
const handle = ($parent) => {
    $parent.money -= 10000;
};

 

 

posted @ 2024-10-10 09:27  洛飞  阅读(7)  评论(0编辑  收藏  举报