vue如何一打開子組件彈窗都刷新?
在父頁面中給子組件同時綁定:visible.sync和v-if
:visible.sync="paramAddDialog" v-if="paramAddDialog"
整體代碼:
<el-dialog width="1200px" align="center" :visible.sync="paramAddDialog" v-if="paramAddDialog"> <addParamForm ref="addParam" @boundSuccess="boundSuccess" @cancelBound="paramAddDialog=false"/> </el-dialog>
OK:
PS:下面看下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 :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>
總結
到此這篇關于vue打開子組件彈窗都刷新功能的實現的文章就介紹到這了,更多相關vue打開子組件彈窗都刷新內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/LicheeM/p/13524952.html