ref与$parent

文章详细介绍了在Vue中如何使用ref获取子组件的DOM节点和实例,以及在子组件内如何通过$parent访问父组件的实例。同时,强调了组件内部数据的封闭性,指出通过defineExpose方法来暴露数据以便于外部访问。示例代码展示了如何在父子组件间进行数据和方法的交互。
摘要由CSDN通过智能技术生成

ref可以获取真实的dom节点,可以获取到子组件实例VC
$parent可以再子组件内部获取到父组件的实例

父组件中使用子组件时给子组件绑定ref

<template>
  <div class="box">
    ref与$parent
    <div>父组件:{{ money }}</div>
    <button @click="handeler">点击改变数值</button>
    <Son ref="son"></Son>
  </div>
</template>

<script setup lang="ts">
import { ref } from "vue";
import Son from "./Son.vue";
const money = ref(1000);
let son = ref();
console.log(son.value);
const handeler = () => {
  money.value += 10;
  son.value.money -= 10;
  console.log(son.value.money);
};
</script>

组件内部数据对外是关闭状态

如果想让外部访问需要通过defineExpose方法对外暴露

子组件中

<template>
  <div class="son">子组件{{ money }}</div>
</template>

<script setup lang="ts">
import { ref } from "vue";
const money = ref(2000);
defineExpose({
  money,
});
</script>

子组件中获取父组件的方法和数据使用$parent

在父组件中通过defineExpose把数据暴露出来,在子组件中使用时用$parent

<template>
  <div class="dau">
    <div>{{ money }}</div>
    <button @click="handeler($parent)">点击改变数值</button>
  </div>
</template>

<script setup lang="ts">
import { ref } from "vue";
const money = ref(200);
const handeler = ($parent) => {
  console.log($parent.money);
  money.value += 1;
  $parent.money -= 1;
};
</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值