11.Vue3.x组件自定义事件 以及mitt 实现非父子组件传值

一、组件自定义事件实现子组件给父组件传值

注意:Vue官方推荐始终使用kebab-case(短横线隔开式)给自定义事件命名

Vue组件中camelCased (驼峰式) 命名与 kebab-case(短横线命名)

在vue官网上有这样的一句话:
“camelCase vs. kebab-case
HTML 特性是不区分大小写的。所以,当使用的不是字符串模版,camelCased (驼峰式) 命名的 prop 需要转换为相>对应的 kebab-case (短横线隔开式) 命名: 如果你使用字符串模版,则没有这些限制。”

子组件Header.vue

<template>
    <h2>
        头部组件---
        <button @click="sendParent">执行父组件的自定义事件</button>
    </h2>
</template>

<script>
    export default {
    
        name: "",
        data() {
    
            return {
    
                msg:"头部组件"
            }
        },
        methods: {
    
            sendParent(){
    
                console.log("触发自己的方法~!");
                // 触发父组件的自定义事件,并传值
                this.$emit("send",this.msg);
            }
        }
    }
</script>

<style scoped>
    h2{
    
        text-align: center;
        background: #000000;
        color:#fff;
    }
</style>

父组件Home.vue

<template>
    <v-header @send="getChild"></v-header>
    <br>
    首页父组件
</template>

<script>
    import Header from "@/components/Header";
    export default {
    
        name: "",
        data() {
    
            return {
    
                title:"首页组件"
            }
        },
        components:{
    
            "v-header":Header,
        },
        methods: {
    
            getChild(val){
    
                console.log("我是父组件的方法");
                // 接收子组件传递的参数
                console.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值