当前位置: 首页 > 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取值,在外层即可获取到值。

http://www.xdnf.cn/news/660421.html

相关文章:

  • 如何用Python搭建一个网站
  • Qwen-Agent的使用示例-天气查询
  • Spring + MyBatis/MyBatis-Plus 分页方案(limit分页和游标分页)详解
  • 【排错】kylinLinx环境python读json文件报错UTF-8 BOM
  • WEB安全--RCE--webshell HIDS bypass3
  • try-with-resources
  • md650场景联动
  • 华为OD机试真题——考勤信息(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • Go语言入门指南
  • lwip_bind、lwip_listen 是阻塞函数吗
  • 从实训到实战:家庭教育干预课程的产教融合定制方案
  • 1期临床试验中的联合i3+3设计
  • IndexTTS - B 站推出的文本转语音模型,支持拼音纠正汉字发音(附整合包)
  • 基于web的二手交易商城-设计
  • uniapp好不好
  • 攻防世界 unseping
  • 从0到1搭建AI绘画模型:Stable Diffusion微调全流程避坑指南
  • 企业网站架构部署与优化-Nginx性能调优与深度监控
  • 系统分析师-考后总结
  • 凯恩斯宏观经济学与马歇尔微观经济学的数学建模和形式化表征
  • 【C++11】lambda表达式 || 函数包装器 || bind用法
  • 论文返修时/录用后,能变更作者、增加或减少作者吗?
  • ros2-moveit2 配置与执行自定义urdf的报错处理
  • 基于私有化 DeepSeek 大模型的工业罐区跑冒滴漏检测技术研究与应用
  • Rust 项目实战:命令行搜索工具 grep
  • 1-600MW 燃气轮机市场未来展望:低碳技术、氢能转型与智能化运维发展趋势报告
  • PSDA安装配置
  • 因重新安装python新版本,pycharm提示找不到python.exe(No Python at“c:\python.exe“)问题解决方法
  • 【虚拟仪器技术】期末7个LABVIEW仿真实验
  • 【TVM 教程】开发环境中加入 microTVM