使用defineExpose暴露子组件的属性和方法、页面生命周期onLoad和onReady的使用
·
欢迎来到我的UniApp技术专栏!🎉 在这里,我将与大家分享关于UniApp开发的实用技巧、最佳实践和项目经验。
专栏特色:
📱 跨平台开发一站式解决方案
🚀 从入门到精通的完整学习路径
💡 实战项目经验分享
🔍 常见问题深度解析
无论你是刚接触UniApp的新手,还是有一定经验的开发者,都能在这里找到有价值的内容。我将持续更新最新技术动态和开发技巧,帮助大家提升开发效率,打造高质量的跨平台应用。如果文章对你有帮助,别忘了点赞收藏🌟,也欢迎在评论区留言交流,我会及时回复大家的问题!
让我们一起探索UniApp的无限可能!💪
目录
一.使用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>
运行结果

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


所有评论(0)