vue 设置组件显示与否_Vue控制子组件的显示隐藏的四种办法

本文详细介绍了Vue中组件交互的三种方式:v-model、sync修饰符以及通过ref调用子组件方法。v-model作为语法糖用于双向数据绑定,sync修饰符用于更新父组件传递的prop值,而ref则允许直接调用子组件的方法。通过这些方法,开发者可以灵活地控制组件的显示和隐藏,以及实现父子组件间的通信。
摘要由CSDN通过智能技术生成

1. v-model

//使用

// data 中 model :false

// 子组件

DOM

export default {

props: {

value: { type: Boolean, default: false },

},

data() {

return {};

},

methods: {

ConfirmHandler() {

this.$emit("input", false);

this.$emit("Confirm");

},

CancelHandler() {

this.$emit("input", false);

this.$emit("Cancel");

}

}

};

解析:

等同于如下,model为@input的一个糖语法

text = e.target.value"/>

由此推算,子组件可以通过value获取父组件传来的值,可用$emit("input")触发父组件的方法input方法

2 .sync 修饰符

//使用

// data 中 model :false

// 子组件

DOM

export default {

props: {

visible: { type: Boolean, default: false },

},

data() {

return {};

},

methods: {

ConfirmHandler() {

this.$emit("update:visible", false);

this.$emit("Confirm");

},

CancelHandler() {

this.$emit("update:visible", false);

this.$emit("Cancel");

}

}

};

解析:

:visible="Visible"

@update:visible="newVisible => Visible = newVisible"

/>

ref 调用子组件方法

// 使用

methods:{

ChangeModel(){

this.$refs.Model.show()

}

}

//子组件

DOM

export default {

data() {

return {

model:false,

};

},

methods: {

show(){

this.model = true

},

ConfirmHandler() {

this.show()

this.$emit("Confirm");

},

CancelHandler() {

this.show()

this.$emit("Cancel");

}

}

};

在组件外通过Props控制显示隐藏

监听子组件的回调函数,通过Props控制子组件的显示隐藏。比较简单。

Ps:暂时发现四中办法,很多UI组件都是通过v-model来控制组件的显示隐藏,这种使用起来代码看着更美观。 状态修改,第一、二、四种都是在组件外修改的状态,第三种是在组件内部修改状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值