在此过程中,它也会运行被称为生命周期钩子的函数,
让开发者有机会在特定阶段运行自己的代码。
onMounted:代表的是挂载结束,注册一个回调函数,在组件挂载完成后执行。
onUnmounted:注册一个回调函数,在组件实例被卸载之后调用。
onUpdated:在组件因为响应式状态变更而更新其 DOM 树之后调用
生命周期主要包含四个阶段分别是:创建,更新,挂载,销毁
1。onmounted
一般我们如果要获取节点,可以使用在节点定义一个ref,scroll是script定义的常量,变量之类的。
<scroll-view scroll-y="true" ref="scroll">
<view></view>
</scroll-view>
我们可以在控制台输出一下这个变量,如果为null则表示没有得到这个节点
const scroll=ref(null);//默认为null
console.log(scroll.value);//null
上面的代码运行之后可以看到输出的是null,是没有获取到节点的,我们需要使用onMounted,
这样我们就可以获取到这个节点了。
const scroll=ref(null);//默认为null
onMounted(()=>{
console.log(scroll.value);
})
2。onUnmounted
我们可以在页面中使用自定义的子组件,然后再子组件中定义一个v-if来判断子组件是否显示,
默认为true显示,setinterval时间到了之后为false隐藏
<cay-demo v-if="show"></cay-demo>
const show=ref(true);
setInterval(()=>{
show.value=false;
},3000)
在子组件中使用onUnmounted来监听,只要子组件卸载就会监听到
二.页面声明周期
onLoad:页面加载时调用,被钩子调用时,用于监听响应式数据,计算属性,方法,侦听器
onReady:监听页面初次渲染完成,此时组件已挂载完成,和组件生命周期onMounted类似
onShow:监听页面显示,页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面
onHide:监听页面隐藏,离开页面是触发
执行顺序是:onLoad>onShow>onReady
onLoad使用前需要声明,import {onLoad} from "@dcloudio/uni-app"
否则会出错。
import {onLoad} from "@dcloudio/uni-app"
onLoad(() => {
console.log("onload函数");
})
也可以接收到其他页面跳转传过来的值后对象
import {onLoad} from "@dcloudio/uni-app"
const name=ref("")
const age=ref("")
onLoad((e) => {
console.log("onload函数");
name.value=e.name;
age.value=e.age;
})
比如我们在页面弄一个计时器离开页面时暂停,回来后继续计时
let count=ref(0);//定义一个变量默认为0
let time=setInterval(()=>{
count.value++;//每次进入count的值加一
},1000)
onShow(()=>{
//回来后重新赋值计算
time=setInterval(()=>{
count.value++;
},1000)
})
onHide(()=>{
clearInterval(time);//离开页面时清除计时器
});
计时器:{{count}}