收藏
回答

小程序onMounted执行问题?

跳转tabbar页面,tabbar页面的onMounted只会执行一次。跳转非tabbar页面执行onMounted后返回其他页面,再次进入非tabbar页面还会执行。有大佬知道其原理吗?

最后一次编辑于  2023-04-17
回答关注问题邀请回答
收藏

1 个回答

  • 上山上树
    上山上树
    2023-04-17

    onMounted 界面创建之后的生命周期

    onShow 界面渲染显示的声明周期

    tabbar 切换 tabbar 时,声明周期不会重置,但是会触发重新渲染

    navigateTo ,微信小程序的界面是 堆栈的形式,同时最多只能打开10个界面,如果关闭了界面,那就是真的关闭了。

    如果你不懂触发逻辑的下 ,看我的描述

    tabbar:第一次渲染会触发onMounted (因为要先触发,如果你有3个tabbar界面,那就是每个界面触发一次,总共3次)

    切换 tabbar tabbar 切换时,不会关闭界面,简单的理解就是,切换tabbar ,就会关闭其他的tabbar 界面,同时触发当前界面onShow 事件,

    所以,如果在tabbar 界面写逻辑,应该是这样的 ,

    tabbar 涉不涉及切换tabbar 刷新数据,如果需要,调用接口写在onShow,如果不需要,则写在 onMounted

    navigateTo:你的每次navigateTo,都会重新创建界面,也就是会走 onMounted 也会走 onShow ,执行的顺讯为 onMounted=》onShow

    所以,如果在navigateTo界面写逻辑,应该是这样的 :

    onMounted 中直接调用接口,如果你涉及了webcoket的打开操作 ,那么你在界面销毁时,一定要关掉 ,scoket ,不然你每次进入界面,都会链接一个socket ,全局定时器也是同理




    2023-04-17
    有用 1
    回复 1
登录 后发表内容