如何使用vuejs2自行关闭对话框?
我正在写一个对话框组件,我不知道如何自己关闭对话框如何使用vuejs2自行关闭对话框?,vuejs2,Vuejs2,我正在写一个对话框组件,我不知道如何自己关闭对话框 <template> <div class="dialog" v-show="visible"> ... <button @click="close">Close</button> </div> </template> <script> { props: {visible: {type: Boolean, default: f
<template>
<div class="dialog" v-show="visible">
...
<button @click="close">Close</button>
</div>
</template>
<script>
{
props: {visible: {type: Boolean, default: false}},
methods: {
close () {
// this.visible = false //It will get vue warn
}
}
}
</script>
在vuejs中,子组件不能直接修改父属性 您可以为此使用事件/事件侦听器。但是因为你的例子很简单,你不需要一个事件 演示: 相反,您可以将组件可见的道具作为
:visisble=“visible”
传递,并将状态更改为:
watch: {
visible (val) {
if(!val) {
// close
}else{
open
}
}
}
现在,如果父组件将
visisble
切换为false,则您的模式将不可见。在vuejs中,子组件无法直接修改parents属性
您可以为此使用事件/事件侦听器。但是因为你的例子很简单,你不需要一个事件
演示:
相反,您可以将组件可见的道具作为:visisble=“visible”
传递,并将状态更改为:
watch: {
visible (val) {
if(!val) {
// close
}else{
open
}
}
}
现在,如果父级将visisble
切换为false,您的模态将不可见。道具是
您不应在子组件中更改从父组件接收的道具
因此,发出一个命令以在父组件本身中变异道具
<template>
<div class="dialog" v-show="visible">
...
<button @click="close">Close</button>
</div>
</template>
<script>
{
props: {visible: {type: Boolean, default: false}},
methods: {
close () {
// this.visible = false //It will get vue warn
this.$emit('close-dialog')
}
}
}
</script>
...
接近
{
属性:{visible:{type:Boolean,默认值:false},
方法:{
结束(){
//this.visible=false//它将获得vue警告
此.$emit('关闭对话框')
}
}
}
父组件
<template>
<div>
<my-dialozg @close-dialog="visible = false" :visible="visible"><my-dialog>
</div>
</template>
在对话框组件上设置事件侦听器关闭对话框
,并将作为道具传递的数据属性可见
设置为false
。您可以按上图所示进行内联操作,也可以将其提取到方法中
您不应在子组件中更改从父组件接收的道具
因此,发出一个命令以在父组件本身中变异道具
<template>
<div class="dialog" v-show="visible">
...
<button @click="close">Close</button>
</div>
</template>
<script>
{
props: {visible: {type: Boolean, default: false}},
methods: {
close () {
// this.visible = false //It will get vue warn
this.$emit('close-dialog')
}
}
}
</script>
...
接近
{
props:{visible:{type:Boolean,default:false},
方法:{
结束(){
//this.visible=false//它将获得vue警告
此.$emit('关闭对话框')
}
}
}
父组件
<template>
<div>
<my-dialozg @close-dialog="visible = false" :visible="visible"><my-dialog>
</div>
</template>
在对话框组件上设置事件侦听器
关闭对话框
,并将作为道具传递的数据属性可见
设置为false
。您可以按上面所示进行内联操作,也可以将其提取到方法中。谢谢,。sync
是我想要的。谢谢,。sync
是我想要的。