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

uni-app学习笔记十五-vue3中defineExpose的使用

使用 <script setup> 的组件是默认关闭的——即通过模板引用或者 $parent 链获取到的组件的公开实例,不会暴露任何在 <script setup> 中声明的绑定。

可以通过 defineExpose 编译器宏来显式指定在 <script setup> 组件中要暴露出去的属性。我们可以通过在子组件中defineExpose 暴露一些属性和方法。父组件中可直接调用子组件定义的方法和获取属性值。下面是一个小demo示范下defineExpose的使用。

子组件demo-child.vue

<template><view class="out">子组件的值:{{count}}</view>
</template><script setup>import {ref} from "vue"const count = ref(100)const updateCount = function(){count.value++}defineExpose({count,name:"XXM",updateCount})
</script>

子组件中暴露了2个属性count和name,1个方法updateCount。

父组件中使用:

<template><view class="layout"><demo-child ref="child"></demo-child><view>--------------</view><button @click="update">点击修改子值</button></view>
</template><script setup>import {onMounted, ref} from "vue"const child = ref(null)const update = function(){child.value.updateCount()}onMounted(()=>{console.log(child.value)})
</script>

上面JS中使用了一个vue3的生命周期钩子函数onMounted,用于在页面未渲染完成时获取值。

上面通过child.value.updateCount()获得子组件定义的方法updateCount。

来看实际效果:

随着按钮的点击,子组件的值由最初的100变成105,调用的是子组件定义的函数updateCount来修改值。当执行点击事件时,页面已渲染完成,因此无需在onMounted取值,在外层即可获取到值。

相关文章:

  • 合肥 网站建设公司哪家好win7优化大师官网
  • gta5网站正在建设中百度知道在线问答
  • wordpress app后端seo工具是什么意思
  • 大学生做网站怎么赚钱怎么制作一个网站5个网页
  • 学生制作网页教程西安seo网站管理
  • behance设计网站官网入口pc优化工具
  • Linux系统编程-DAY05
  • 鸿蒙OSUniApp 开发带有通知提示的功能组件#三方框架 #Uniapp
  • Vue 样式穿透(深度选择器)::v-deep
  • 如何轻松地将文件从 iPhone 传输到 PC
  • 软件测试过程中如何定位BUG
  • 华为云Flexus+DeepSeek征文|依托华为云生态:Dify 平台 AI Agent 开发的场景化实践
  • 基于小米Open-Vela开源系统的高级计算器实现 | 支持C++数学函数与 LVGL UI
  • 使用docker容器部署Elasticsearch和Kibana
  • maven模块化开发
  • C语言学习笔记二---v
  • python截取grafana监控面板生产巡检图片
  • idea中使用Maven创建项目
  • maven中的grpc编译插件protobuf-maven-plugin详解
  • LlamaFirewall:开源框架助力检测与缓解AI核心安全风险
  • Kafka|基础入门
  • Maven-概述-介绍安装
  • Hive数据倾斜优化方法总结
  • ElasticSearch--DSL查询语句
  • C#高级:Winform桌面开发中CheckedListBox的详解
  • Elasticsearch 节点角色详解及协调节点请求策略