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

使用defineExpose暴露子组件的属性和方法、页面生命周期onLoad和onReady的使用

欢迎来到我的UniApp技术专栏!🎉 在这里,我将与大家分享关于UniApp开发的实用技巧、最佳实践和项目经验。

专栏特色:

📱 跨平台开发一站式解决方案
🚀 从入门到精通的完整学习路径
💡 实战项目经验分享
🔍 常见问题深度解析
无论你是刚接触UniApp的新手,还是有一定经验的开发者,都能在这里找到有价值的内容。我将持续更新最新技术动态和开发技巧,帮助大家提升开发效率,打造高质量的跨平台应用。

如果文章对你有帮助,别忘了点赞收藏🌟,也欢迎在评论区留言交流,我会及时回复大家的问题!

让我们一起探索UniApp的无限可能!💪

目录

一.使用defineExpose暴露子组件的属性和方法

1.子组件代码

2.父组件代码

3.运行效果

二.页面生命周期onLoad和onReady的使用

1.onLoad的使用

举例

2.onReady的使用

举例


一.使用defineExpose暴露子组件的属性和方法

1.子组件代码

<template><view>子组件count值:{{count}}</view>
</template><script setup>
import {ref} from "vue";
const count = ref(100);
const updateCount = ()=>{count.value ++;
}//暴露子组件的属性、方法
defineExpose({count,str:"咸虾米",updateCount
})</script><style lang="scss"></style>

2.父组件代码

<template><view class=""><child01 ref="myChild"></child01><view>-------</view><button @click="update">点击修改子值</button></view>
</template><script setup>
import { ref,onMounted } from 'vue';
const myChild = ref(null);
const update = ()=>{//在此处,调用子组件暴露的方法myChild.value.updateCount();
}onMounted(()=>{console.log(myChild.value);
})</script><style lang="scss" scoped></style>

3.运行效果

运行父组件,效果如下

代码解析:子组件通过defineExpose暴露出属性和方法,然后父组件就能直接使用(先通过ref获取子组件dom元素,然后直接访问即可)。

二.页面生命周期onLoad和onReady的使用

1.onLoad的使用

运行的时机:

使用场景:当页面1跳转到页面2时(携带参数),页面2可以通过onLoad函数接收页面1传来的参数。

举例

页面page01的代码

<template><view class=""><!-- 点击跳转页面,并携带两个参数 --><navigator url="/pages/page02/page02?name=王五&age=20">点击跳转页面page02</navigator></view>
</template><script setup></script><style lang="scss" scoped>
</style>

页面page02的代码

<template><view class="">姓名:{{name}} - 年龄:{{age}}</view>
</template><script setup>
import {ref} from "vue";
/* 导入onLoad生命周期函数 */
import {onLoad} from "@dcloudio/uni-app";
const name = ref();
const age = ref();
//使用onLoad接收页面跳转时传递过来的参数,并赋值给相关变量
onLoad((e)=>{name.value = e.name;age.value = e.age;
})</script><style lang="scss" scoped>
</style>

运行效果

2.onReady的使用

onReady和之前学过的onMounted生命周期函数一样,都是用来获取dom元素的。

只不过,onReady属于uniapp,而onMounted属于vue3。

举例

代码

<template><view class="" ref="myView01"></view>
</template><script setup>
import {ref} from "vue";
/* 导入onReady生命周期函数 */
import {onReady} from "@dcloudio/uni-app";
const myView01 = ref(null);//在onReady函数中,获取dom元素
onReady(()=>{console.log(myView01.value);
})</script><style lang="scss" scoped>
</style>

运行结果

以上就是本篇文章的全部内容,喜欢的话可以留个免费的关注呦~~~~~~~

http://www.dtcms.com/a/283409.html

相关文章:

  • 【AI论文】可追溯证据增强的视觉基础推理:评估与方法论
  • OSS文件上传解析失败,错误:文件下载失败的排查与解决
  • 61.第二阶段x64游戏实战-抓取Lua分析本地和跨图寻路
  • Harbor 和 Helm
  • 陆面、生态、水文模拟与多源遥感数据同化的实践技术应用
  • ACL实验(思科设备)
  • 游戏开发中防止“范围蔓延”
  • Oracle 数据库常见等待事件参数详解
  • YOLO算法原理
  • 2025年中国品牌全球化发展分析:中国品牌在社交渠道、电商平台及官网流量方面显著增长
  • 测试开发工作日常用的提示词分享
  • 探秘京东外卖幕后:地图轨迹技术探寻
  • Java+Ollama 本地部署 DeepSeek-R1 对话机器人:从 0 到 1 实战指南
  • 动态规划的无后效性与马尔可夫性质相似关系的说明
  • [Java安全】JDK 动态代理
  • 3D TOF 安全防护传感器
  • 低精度定时器 (timer_list) 和 高精度定时器 (hrtimer)
  • 切比雪夫距离
  • Python高级编程技巧探讨:装饰器、Patch与语法糖详解
  • 二叉树思想草稿
  • 关于SaaS业务模式及其系统架构构建的详细解析
  • RICE-YOLO:基于改进YOLOv5的无人机稻穗检测新方法
  • 【C语言网络编程】HTTP 客户端请求(发送请求报文过程)
  • 在UE中如何操作视图的大小,方位,移动
  • 16路串口光纤通信FPGA项目实现指南 - 第二部分(上)
  • 【LeetCode刷题指南特别篇】--移除链表元素,调试技巧,链表分割
  • pyJianYingDraft 在 import_srt 字幕添加花字效果
  • 鸿蒙系统账号与签名内容整理
  • CG--资料分析1
  • 重载操作类型