vue3父子传值实现弹框功能的示例详解

 更新时间:2023年12月07日 10:48:28   作者:Kyrie_mvp  
这篇文章主要为大家详细介绍了vue3如何利用父子传值实现弹框功能,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下

需在父组件中点击按钮然后弹出子组件的弹框

1 父组件

<template>	
    <generateDialog :drawer="drawer"></generateDialog>   //bind绑定子组件
     {{   drawer   }}       // 看是否父更改了状态
    <el-button @click="CanShowDrawer">点击显示弹窗</el-button>
</template>
 
 
<script setup>
   import generateDialog from './components/useModel/generateDialog.vue'; //引入子
 
   const drawer = ref(false); //显示弹窗
 
   const CanShowDrawer = () => {
	drawer.value = !drawer.value;
   };

2 子组件中的v-model渲染是重点

<template>
    <el-dialog title="我是标题" :with-header="false" direction="ttb" size="300px" v-model="drawerson">
    </el-dialog>
</template>
 
<script setup>
  import { defineProps, watch, ref } from 'vue';
 
  const drawerson = ref(false);
 
  const props = defineProps({
	drawer: {
		type: Boolean,
		default: false,
	},
  });
 
  watch(
	() => props.drawer,
	(newVal) => {
		drawerson.value = newVal;
		console.log('drawerson.value', drawerson.value);     //可以测试父传递的,子是否拿到了
	}
  );
</script>

效果图如下

子的完整代码如下 (父已经是完整代码了)

<template>
	<div class="dialog">
		<el-dialog title="我是标题" :with-header="false" direction="ttb" size="300px" v-model="drawerson">
			<div class="top">我是顶部</div>
			<div class="father">
				<el-scrollbar class="scrollbar">
					<div class="son">1</div>
					<div class="son">2</div>
					<div class="son">3</div>
					<div class="son">4</div>
					<div class="son">5</div>
					<div class="son">6</div>
				</el-scrollbar>
			</div>
			<div class="footer">
				<el-button>生成</el-button>
			</div>
		</el-dialog>
	</div>
</template>
 
<script setup>
import { defineProps, watch, ref } from 'vue';
 
const drawerson = ref(false);
 
const props = defineProps({
	drawer: {
		type: Boolean,
		default: false,
	},
});
 
watch(
	() => props.drawer,
	(newVal) => {
		drawerson.value = newVal;
		console.log('drawerson.value', drawerson.value);
	}
);
</script>
 
<style lang="less" scoped>
.dialog {
	position: relative;
	.top {
		text-align: center;
		padding-bottom: 20px;
	}
	.father {
		.scrollbar {
			height: 300px;
		}
 
		.son {
			min-width: 213px;
			height: 200px;
			background: #aaa;
			margin: 0 10px 10px 10px;
			display: flex;
			justify-content: center;
			align-items: center;
		}
	}
	.footer {
		position: absolute;
		bottom: 10px;
		right: 3%;
	}
}
 
:deep(.el-dialog) {
	width: 800px;
	margin: 0 auto;
}
 
:deep(.el-scrollbar__view) {
	display: flex;
	flex-wrap: wrap;
	height: 80%;
}
</style>

到此这篇关于vue3父子传值实现弹框功能的示例详解的文章就介绍到这了,更多相关vue3弹框内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue3 中的插件和配置推荐大全

    Vue3 中的插件和配置推荐大全

    这篇文章主要介绍了Vue3 中的插件和配置推荐大全,本文通过图文实例代码相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • vue electron实现无边框窗口示例详解

    vue electron实现无边框窗口示例详解

    这篇文章主要为大家介绍了vue electron实现无边框窗口示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Electron+vue3项目使用SQLite3数据库详细步骤(超详细)

    Electron+vue3项目使用SQLite3数据库详细步骤(超详细)

    Electron是一个基于vue.js的新框架,它可以构建桌面应用,这篇文章主要给大家介绍了关于Electron+vue3项目使用SQLite3数据库的详细步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Vue中的Object.defineProperty全面理解

    Vue中的Object.defineProperty全面理解

    这篇文章主要介绍了Vue中的Object.defineProperty全面理解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • vuex之this.$store.dispatch()与this.$store.commit()的区别及说明

    vuex之this.$store.dispatch()与this.$store.commit()的区别及说明

    这篇文章主要介绍了vuex之this.$store.dispatch()与this.$store.commit()的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • 基于vue实现多引擎搜索及关键字提示

    基于vue实现多引擎搜索及关键字提示

    这篇文章主要为大家详细介绍了基于vue实现多引擎搜索及关键字提示的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • vue新建环境变量以及网络请求工具axios的二次封装详解

    vue新建环境变量以及网络请求工具axios的二次封装详解

    这篇文章主要为大家介绍了vue新建环境变量以及网络请求工具axios的二次封装详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Vue中Vue-Baidu-Map基本使用方法实例

    Vue中Vue-Baidu-Map基本使用方法实例

    最近有一个项目需要用到地图来展示位置并进行数据交互,用vue-baidu-map实现出来,下面这篇文章主要给大家介绍了关于Vue中Vue-Baidu-Map基本使用的相关资料,需要的朋友可以参考下
    2023-03-03
  • vue 注册组件的使用详解

    vue 注册组件的使用详解

    Vue.js的组件的使用有3个步骤:创建组件构造器、注册组件和使用组件。这篇文章主要介绍了vue 注册组件的使用,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-05-05
  • Vite打包性能优化之开启Gzip压缩实践过程

    Vite打包性能优化之开启Gzip压缩实践过程

    vue前端项目发布的时候,打包可实现gzip格式的压缩,下面这篇文章主要给大家介绍了关于Vite打包性能优化之开启Gzip压缩的相关资料,需要的朋友可以参考下
    2022-12-12

最新评论