当前位置: 首页 > news >正文

vue3使用v-model控制子组件进行双向数据绑定

vue2写法:

中父组件调用子组件:

<child :isShow.sync="isShow" v-show="isShow"/>

子组件想要消失, 在子组件写:

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

具体代码就不粘贴了

vue3写法: 

父组件核心代码:

v-model:a="xxx"

子组件核心代码:

defineProps({
  a: 数据类型, // 父页面传递的数据
});

interface IEmits {
  (e: 'update:a', arg1: 数据类型): void;
}

const emits = defineEmits<IEmits>();

调用父组件的方法:
emits("update:isShow", false);
 

使用示例:

注意: v-model:isShow="isShow" 如果拆开写就是   @update:isShow="bol=>isShow=bol"  :isShow="isShow"

父组件代码如下:

<script setup>
import { ref, defineAsyncComponent } from 'vue'// 异步组件
const ChildA = defineAsyncComponent(() => import('./components/Test.vue'));const isShow = ref(false);
const show = () => {isShow.value = true
}
</script><template><input type="button" value="我是父组件中的按钮, 让子组件出现" @click="show"><!-- v-model:isShow="isShow"=> @update:isShow="bol=>isShow=bol" :isShow="isShow" --><ChildA v-model:isShow="isShow" />
</template><style scoped>
</style>

子组件逻辑:

因为 v-model:isShow="isShow" 如果拆开写就是   @update:isShow="bol=>isShow=bol"  :isShow="isShow"

所以:

defineProps({
  isShow: Boolean
});

const hide = () => {
  emits("update:isShow", false);
}

子组件代码如下:

<script setup lang="ts">
import { defineProps } from 'vue';
// 父组件传数据 v-model:isShow="isShow"
// v-model:isShow="isShow"=> @update:isShow="bol=>isShow=bol" :isShow="isShow"
defineProps({isShow: Boolean
});interface IEmits {(e: 'update:isShow', arg1: Boolean): void;
}
const emits = defineEmits<IEmits>();const hide = () => { // 因为父页面传过来的方法相当于是bol=>isShow=bol, 所以传false就会消失emits("update:isShow", false);
}
</script><template><div v-show="isShow"><button @click="hide">我是子组件,点我消失</button></div>
</template><style scoped>
button {margin: 10px;
}
</style>

http://www.lryc.cn/news/183156.html

相关文章:

  • .netCore .net5,6,7 存日志文件
  • 【数据结构---排序】很详细的哦
  • GitHub爬虫项目详解
  • 辅助驾驶功能开发-功能对标篇(7)-NOA领航辅助系统-上汽荣威
  • 第0次 序言
  • ESP32设备驱动-OLED显示单个或多个DS18B20传感器数据
  • MongoDB快速上手
  • maven 初学
  • 解决WPF+Avalonia在openKylin系统下默认字体问题
  • 智能合约漏洞,Dyna 事件分析
  • Elasticsearch基础篇(四):Elasticsearch7.x的官方文档学习(Set up Elasticsearch)
  • 二叉树的遍历方式和代码
  • 小样本学习——匹配网络
  • CSS 常用样式 之字体属性
  • nodejs+vue游戏测评交流系统elementui
  • 1.2.OpenCV技能树--第一单元--OpenCV安装
  • 全志ARM926 Melis2.0系统的开发指引⑥
  • Junit单元测试为什么不能有返回值?
  • 【成像光敏描记图提取和处理】成像-光电容积描记-提取-脉搏率-估计(Matlab代码实现)
  • Ubuntu无法引导启动的修复
  • Windows电脑上的多开软件是否安全?
  • U盘支持启动区+文件存储区的分区方法
  • JavaEE-线程进阶
  • 【开发篇】十五、Spring Task实现定时任务
  • Python常用功能的标准代码
  • Electron.js入门-构建第一个聊天应用程序
  • ubuntu 22.04 更新NVIDIA显卡驱动,重启后无网络图标等系统奇奇怪怪问题
  • Python综合案例:学生管理系统
  • IDT 一款自动化挖掘未授权访问漏洞的信息收集工具
  • 复习 --- 消息队列