vue组件之间通信

1、父组件调用子组件(组件的封装和调用)

  • Import 导⼊⼦组件
  • components注册⼦组件
  • 注册的⼦组件当做标签来使⽤
######### zi.vue ########
<template>
    <div>
            <p>我是子组件</p>
    </div>
</template>

父组件中调用子组件

######### fu.vue #########
<template>
    <div>
    	<- 将注册的子组件当作标签使用->
        <zi></zi>
        <p>我是父组件</p>
    </div>
</template>

<script>
// 导入子组件
import zi from './zi'
export default {
   // 注册子组件
    components:{
        zi
    },
}
</script>

在这里插入图片描述

2、父组件给子组件传参

  • ⽗组件⾥的⼦标签⾥写上要传递的数据 (:⼦组件的参数名字=⽗组件的参数名字)
  • 在⼦组件⾥注册参数(pros)
  • 使⽤⽗组件传过来的参数
###################  zi.vue ####################

<template>
    <div>
            <p>我是子组件</p>
            {{str}}
    </div>
</template>

<script>

export default {
    props: {
        str: '',   // 注册参数 str
    },
}
</script>

##########################  fu.vue   ##################33
<template>
    <div>
    	<- 标签中把注册的参数当作属性,传递信息 ->
        <zi :str="str"></zi>
        <p>我是父组件</p>
        {{str}}
    </div>
</template>

<script>
import zi from './zi'
export default {
    components:{
        zi
    },
    
    data() {
        return {
             str: '给子组件传递信息'
        }
    },
    methods: {

    },
    created() {

    }
}
</script>

在这里插入图片描述

3、子组件给父组件传递数据

  • ⼦组件⾥先⽤特定的⽅法来把数据传递给⽗组件( this.$emit(“⽅法的名字”,要传递的数据))
  • ⽗组件的⼦标签⾥来接收数据(@⼦组件的⽅法 = ⽗组件的⽅法)
  • 在methods⾥接收传过来的val并赋值。
#######################  zi.vue ###########################

<template>
    <div>
            <p>我是子组件</p>
           <- 在子组件中创建一个按钮,给按钮绑定一个点击事件send_fu ->
            <button @click="send_fu">给父组件传递信息</button>
    </div>
</template>

<script>
export default {
    data() {
        return {
            data: '给父组件'
        }
    },
    methods: {
     //  在响应该点击事件的函数中使用 $EMIT 来触发一个自定义事件chang_fu,并传递一个参数data
        send_fu(){
            this.$emit('chang_fu', this.data)
        }
    },
}
</script>
####################### fu.vue  #########################
<template>
    <div>
     <!-- 在父组件中的子标签中监听该自定义事件并添加一个响应该事件的处理方法 -->
        <zi  @chang_fu="getzi"></zi>
        <p>我是父组件</p>
    </div>
</template>

<script>
import zi from './zi'
export default {
    components:{
        zi
    },    
    data() {
        return {
            data: ''
        }
    },
    methods: {
    	// 在methods⾥接收传过来的val并赋值。
        getzi(val){
            console.log(val)
            this.data = val
        }
    },
}
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值