VUE 组件之间.sync的传参

本文介绍了一个使用Vue.js实现子组件如何通过自定义事件更新父组件状态的示例。具体展示了如何在子组件中使用this.$emit触发父组件的属性更新,解决实际开发中常见的组件通信问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在创建弹框组件的时候,会遇到子组件的props更新到父组件的问题

 

这是父组件的代码

 <Dialog :show.sync="showSafeDialog" title="安全防护措施和手段" width="50%">
            <div v-html="means"></div>
        </Dialog>

   data() {
            return {
                    showSafeDialog: false
            }
        },

子组件


        <div class="dialog" v-if="show">
            <div class="mainBox" :style="{width: width,left: ( 100 - parseInt(width)) / 2+'%',top: top}">
                <div class="title">{{title}}</div>
                <GeminiScrollbar style="max-height: 90%;">
                    <div class="content">
                        <slot></slot>
                    </div>
                </GeminiScrollbar>
            </div>
            <div class="zhe" @click="close"></div>
        </div>

<script>
    export default {
        name: "Dialog",
        props: {
            title: {
                default: '',
                type: String
            },
            width: {
                default: '60%',
                type: String
            },
            show: {
                default: false,
                type: Boolean
            },
            top: {
                default: '20%',
                type: String
            }
        },
        methods: {
            close() {
//This is 关键
                this.$emit('update:show', false)
            }
        },
        watch: {}
    }
</script>

通过 this.$emit('update:**', 参数),这种方式更新了父组件的 showSafeDialog

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值