zoukankan      html  css  js  c++  java
  • VUE 父组件调用子组件弹窗

    想搞一个新增编辑弹窗,和列表页面分开

    先来一个父组件调用子组件弹窗的demo

    父组件

    <template>
        <div>
            <el-button @click="show">按钮</el-button>
            
            <!-- 新增编辑弹框子组件 -->
            <add-or-update :addOrUpdateVisible="addOrUpdateVisible" @changeShow="showAddOrUpdate" ref="addOrUpdateRef"></add-or-update>
        </div>
    </template>
    
    <script>
    // 引入子组件
    import AddOrUpdate from './Edit'
    export default {
        data(){
            return{
                // 控制新增编辑弹窗的显示与隐藏
                addOrUpdateVisible: false
            }
        },
        // 使用子组件
        components:{
            AddOrUpdate
        },
        methods:{
            // 按钮点击事件 显示新增编辑弹窗组件
            show(){
                this.addOrUpdateVisible = true
            },
            // 监听 子组件弹窗关闭后触发,有子组件调用
            showAddOrUpdate(data){
                if(data === 'false'){
                    this.addOrUpdateVisible = false
                }else{
                    this.addOrUpdateVisible = true
                }
            }
        }
    }
    </script>

    子组件:

    <template>
        <el-dialog
            title="提示"
            :visible.sync="showDialog"
            width="50%"
            @close="handleClose">
    
            <span>这是一段信息</span>
            <span slot="footer" class="dialog-footer">
                <el-button @click="showDialog = false">取 消</el-button>
                <el-button type="primary" @click="showDialog = false">确 定</el-button>
            </span>
    
        </el-dialog>
    </template>
    
    <script>
    export default {    
        // 接受父组件传递的值
        props:{
            addOrUpdateVisible:{
                type: Boolean,         
                default: false
            }
        },
        data(){
            return{
                // 控制弹出框显示隐藏
                showDialog:false
            }
        },
        methods:{
            // 弹出框关闭后触发
            handleClose(){
                // 子组件调用父组件方法,并传递参数
                this.$emit('changeShow','false')
            }
        },
        watch:{
            // 监听 addOrUpdateVisible 改变
            addOrUpdateVisible(oldVal,newVal){
                this.showDialog = this.addOrUpdateVisible
            },
        }
    }
    </script>
    
    <style lang="less" scoped>
    
    </style>
  • 相关阅读:
    hadoop 第二次启动 50030端口能打开 50070端口打不开
    hadoop配置(个人总结)
    发布版本化您的应用
    hive 初始化运行流程
    android Content Providers 内容提供者
    hive Cli常用操作(翻译自Hive wiki)
    用于展现图表的50种JavaScript库
    STL list transfer (迁移)实现
    pop_heap算法 (将根节点置于容器尾部后重调heap结构)
    sgi STL源码下载
  • 原文地址:https://www.cnblogs.com/shuaichao/p/12661312.html
Copyright © 2011-2022 走看看