defineExpose(父拿子方法)
在vue2中是使用this.refs.子组件名称.xxx方法,即可拿到子组件定义的值或者方法,在vue3中没办法这么拿取,必须子组件暴露后父组件才可以拿取到
//子组件 <template> <div class="child"> {{val}} </div> </template> <script setup> import {ref,defineExpose} from 'vue' let val = ref('我是子组件') let fn = ()=>{ val.value='我改变了子组件' } // 暴露val和fn defineExpose({ val,fn }) </script> //父组件 <template> <div class="box"> <!-- 接收子组件的方法 --> <v-child ref ='child'></v-child> </div> </template> <script setup> // 引入后无需注册 import vChild from "../components/child.vue"; import {ref,onMounted} from 'vue'; // 获取child实例 let child = ref() onMounted(()=>{ console.log(child.value.val);//直接打印:我是子组件,并不需要加.value // 执行子组件的fn函数 child.value.fn() }) </script>
学而不思则罔,思而不学则殆!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具