vue 父子传值 ref和props两种方法

一:ref

父组件

<template>
  <div id="app">
  <v-head ref="headlist"  @myevent="sendmsg"></v-head>
  </div>
</template>
<script>
import header from "@/components/Head";
import { defineAsyncComponent } from "vue";
export default {
  name: "App",
  components: {
    "v-head": header,
  },
  data(){
    return {}
  },
  mounted() {
    //this.$refs 可以直接使用子组件里的数据和方法
    console.log(this.$refs.headlist);//上面ref=xx 这里就写this.$refs.xx
  },
</script>

<style>
</style>

子组件

<template>
<div id="headinfo">
    头部组件
    <br>
    {{msg}}
</div>
</template>
<script>
export default {
    name:'headinfo',
    
    props:{
        msg:String
    },
}
</script>
<style>
</style>

二:props 

父组件

<template>
  <div id="app">
    <v-head :msg="msg" ></v-head> //动态传值 父组件:xx 子组件的props里就写 xx:{}
  </div>
</template>

<script>
import header from "@/components/Head";
import { defineAsyncComponent } from "vue";
export default {
  name: "App",
  components: {
    "v-head": header,
  },
  data(){
    return {
       msg:'动态传值',
    }
  },
};
</script>

<style>
</style>

子组件

<template>
<div id="headinfo">
    头部组件
    <br>
    {{msg}}
</div>
</template>
<script>
export default {
    name:'headinfo',   
    //父组件写了 :msg 所以这里写 msg:xx
    props:{
        msg:String
    },
}
</script>
<style>
</style>

三:emit(子传父) 

父组件

<template>
  <div id="app">
    <v-head @value="value" ></v-head> //动态传值 父组件:xx 子组件的props里就写 xx:{}
  </div>
</template>

<script>
import header from "@/components/Head";
import { defineAsyncComponent } from "vue";
export default {
  name: "App",
  components: {
    "v-head": header,
  },
  data(){
    return {
       arr:[]
    },
  methods:{
    value(val){
      this.arr = val      
    }
    }
  },
};
</script>

<style>

子组件

<template>
<div id="headinfo">
    头部组件
    <br>
</div>
</template>
<script>
export default {
    name:'headinfo',
    data(){
      return{
        arr:[]
      }
    }   
    methods:{
      select(){
         this.$emit("value",this.arr)//value和父亲那的@value要一样
      }
    }
}
</script>
<style>
</style>

资料参考了:vue父子组件传值:props,$ref和$emit_ey..的博客-CSDN博客_$ref传值

 vue父子组件传值:props,$ref和$emit_ey..的博客-CSDN博客

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值