vue3 祖孙组件传值及父子双向绑定

1.祖孙组件传值(provide、inject )
祖组件
import { ref, provide} from "vue";

const navName = ref('瞌睡的博客主页') //导航标签名称
const sendGrandson = function (value) { //执行孙子件方法赋值
  navName.value = value //接收
}
provide('sendHandle', sendGrandson)//执行孙子件方法赋值
孙组件
import { ref,inject } from 'vue';
const sendGrandson = inject('sendHandle'); //注入祖件方法

const getNavName = function (params) {
  sendGrandson(params) //执行祖件方法
}
2.父子组件双向绑定
子组件
import { ref,reactive, watch,defineEmits} from 'vue';
let str = ref()
const emit = defineEmits(['update:getValue'])
emit('update:getValue',str.value);

父组件
<NavLabel v-model:getValue="getValue"></NavLabel>
const getValue = ref()
watch(getValue,(val)=>{
  console.log(getValue.value,'获取到的值');
})

在这里插入图片描述

3.父子组件传值
父组件
 <NavLabel  :foo="getValue"></NavLabel>
const getValue = ref('321')
子组件
const props = defineProps(['foo'])
console.log(props.foo)

4.子组件执行父组件方法
父组件
 <NavLabel  @getValue="getValue"></NavLabel>
const getValue = function(data){
console.log(data,'子组件执行父组件方法');
}
子组件
import {  defineProps,defineEmits ,inject } from 'vue';
const emit = defineEmits(['getValue'])
const getNavName = function (params) {//子组件页面点击的方法
  emit('getValue',321)
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值