【微信小程序】知识点总结

本文详细介绍了微信小程序的路由操作,包括不同类型的页面跳转及其应用场景。深入探讨了生命周期,从应用到页面的生命周期函数及其相互影响。此外,还讨论了bindtap和catchtap事件处理的区别,小程序跳转tab的注意事项,WXML的传值方法,下拉刷新的实现,以及小程序与Vue在绑定和写法上的差异。同时,总结了小程序的优缺点,为开发者提供了全面的理解和指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

路由

wx.switchTab(Object object)
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面

wx.reLaunch(Object object)
关闭所有页面,打开到应用内的某个页面

wx.redirectTo(Object object)
关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面。

wx.navigateTo(Object object)
保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面。使用 wx.navigateBack 可以返回到原页面。小程序中页面栈最多十层。

wx.navigateBack(Object object)
关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages 获取当前的页面栈,决定需要返回几层。

总结:
navigateTo, redirectTo 只能打开非 tabBar 页面。

switchTab 只能打开 tabBar 页面。

reLaunch 可以打开任意页面。

页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。
调用页面路由带的参数可以在目标页面的onLoad中获取。

微信官方文档-路由

生命周期

应用的生命周期

App() 函数用来注册一个小程序。接受一个 object 参数,其指定小程序的生命周期函数等。

object参数说明:

属性类型描述触发时机
onLaunchFunction生命周期函数–监听小程序初始化当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
onShowFunction生命周期函数–监听小程序显示当小程序启动,或从后台进入前台显示,会触发 onShow
onHideFunction生命周期函数–监听小程序隐藏当小程序从前台进入后台,会触发 onHide

前台、后台定义: 当用户点击左上角关闭,或者按了设备 Home 键离开微信,小程序并没有直接销毁,而是进入了后台;当再次进入微信或再次打开小程序,又会从后台进入前台。
应用的生命周期

  • 用户首次打开小程序,触发 onLaunch(全局只触发一次)。
  • 小程序初始化完成后,触发onShow方法,监听小程序显示。
  • 小程序从前台进入后台,触发 onHide方法。
  • 小程序从后台进入前台显示,触发 onShow方法。
  • 小程序后台运行一定时间,或系统资源占用过高,会被销毁。

页面的生命周期

Page()函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。
object 参数说明:
在这里插入图片描述
在这里插入图片描述

  • 小程序注册完成后,加载页面,触发onLoad方法。
  • 页面载入后触发onShow方法,显示页面。
  • 首次显示页面,会触发onReady方法,渲染页面元素和样式,一个页面只会调用一次。
  • 当小程序后台运行或跳转到其他页面时,触发onHide方法。
  • 当小程序有后台进入到前台运行或重新进入页面时,触发onShow方法。
  • 当使用重定向方法wx.redirectTo(OBJECT)或关闭当前页返回上一页wx.navigateBack(),触发onUnload。

应用的生命周期对页面生命周期的影响

在这里插入图片描述

  • 小程序初始化完成后,页面首次加载触发onLoad,只会触发一次。
  • 当小程序进入到后台,先执行页面onHide方法再执行应用onHide方法。
  • 当小程序从后台进入到前台,先执行应用onShow方法再执行页面onShow方法。

bindtap和catchtap的区别是什么

bindtap是不会阻止冒泡事件的,catchtap是阻止冒泡的

小程序跳转tab需要注意哪些?

必须用wx.switchTab(Object object),需要跳转的页面必须是在app.json中的tabBar注册过的,并且路径后不能带参数

wxml传值

  • 添加data-属性来传递我们需要的值,然后通过e.currentTarget.dataset获取
  • 需要注意:命名如果有大写,如:data-ID,在获取的时候都是小写,即:ev.currentTarget.dataset.id

如何实现下拉刷新

  • 首先在app.json或者页面的json中配置enablePullDownRefresh:true
  • 在 Page中使用onPullDownRefresh 函数,该函数在下拉刷新时执行
  • 在下拉函数执行时发起数据请求,请求返回后,调用 wx.stopPullDownRefresh 停止下拉刷新的状态

小程序的双向绑定和vue哪里不一样

小程序直接this.data的属性是不可以同步到视图的,必须调用this.setData({})

小程序和Vue写法的区别

  • 循环遍历:小程序是wx:for=“list”,vue是v-for=“inforin list”
  • 调用data模型:小程序是this.data.unifo,vue是this.unifo
  • 给模型赋值:小程序是this.setData({unifo:1}),vue是直接this.unifo=1

小程序的优点和缺点

优点

  • 无需下载
  • 打开速度快
  • 开发成本低
  • 为用户提供良好的安全保障。发布有一套严格的审查流程,不能通过审查的程序无法发布上线
  • 服务请求快

缺点

  • 依托微信,不能开发后台管理功能
  • 大小限制不能超过2M,不能打开超过5个层级的页面

参考

微信小程序之生命周期(四)
前端开发工程师面试(小程序)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值