当前位置: 首页 > 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.lryc.cn/news/590648.html

相关文章:

  • 微服务架构升级:从Dubbo到SpringCloud的技术演进
  • CSS动画与变换全解析:从原理到性能优化的深度指南
  • Web前端性能优化原理与方法
  • PHP8.5.0 Alpha 1 正式发布!
  • Fiddler 中文版 API 调试与性能优化实践 官方中文网全程支持
  • 算法精讲--正则表达式(二):分组、引用与高级匹配技术
  • Hadoop(二)
  • java-面向对象之继承特性
  • 【时时三省】(C语言基础)通过指针引用多维数组2
  • 亚马逊云科技快速上手之EC2 WindowsServer如何设置初始密码和重置
  • 网络劫持对用户隐私安全有何影响?
  • 电力名词通俗解析5:计量系统
  • 矿业自动化破壁者:EtherCAT转PROFIBUS DP网关的井下实战
  • 0 - MIT 6.S081 2020 操作系统 实验环境配置
  • 计算机网络——数据链路层(25王道最新版)
  • python中pymysql中的错误 raise AttributeError(name)AttributeError: commit解决办法
  • [MySQL基础1]数据定义语言DDL与数据操作语言DML
  • 系统性学习C语言-第十八讲-C语言内存函数
  • 微服务的编程测评系统2
  • EP02:【NLP 第二弹】自然语言处理数据
  • 需求分析方法论
  • VUEX 基础语法
  • STM32 | 定时器 PWM 呼吸灯
  • 基于渐进式迁移学习网络(PTLN)​的小样本故障诊断模型
  • [特殊字符] Electron 中的 `global` 变量
  • 用PyTorch手写透视变换
  • 【2025/07/16】GitHub 今日热门项目
  • 推客系统开发全攻略:从架构设计到高并发实战
  • Oracle 关于一些连接故障的总结
  • 【static 修饰局部变量、全局变量、函数】