微信小程序学习笔记(六)
发布日期:2021-07-01 02:13:18 浏览次数:2 分类:技术文章

本文共 2565 字,大约阅读时间需要 8 分钟。

onLaunch(options):

  1. 调用时机:小程序被加载完毕的时候调用。这个方法一般用来做一些初始化的事情。比如获取用户信息、获取历史缓存信息、获取小程序打开来源等。
  2. 参数:
    | 参数 | 类型 | 说明 | | :— | :— | :— | | path | String | 打开小程序的路径 | | query | Object | 打开小程序的query |
    | scene | Number | 打开小程序的场景值 | | shareTicket | String | shareTicket,详见 获取更多转发信息 | |
    referrerInfo | Object | 当场景为由从另一个小程序或公众号或App打开时,返回此字段 | | referrerInfo.appId |
    String | 来源小程序或公众号或App的 appId,详见下方说明 | | referrerInfo.extraData | Object | 来源小程序

传过来的数据,scene=1037或1038时支持 | onShow(options):

  1. 调用时机:小程序启动,或从后台进入前台显示时调用。如果想要在小程序每次进入到前台的时候都执行一些事情,那么可以把代码放在这个里面。比如一些实时动态更改的数据,用户每次进来都要从服务器更新,那么我们就可以在这个里面做。
  2. 参数:同 onLoad 。

onHide():

  1. 调用时机:小程序被切换到后台(包括微信自身被切换到后台或者小程序暂时被切换到后台时)。可以在这个方法中做一些数据的保存。
  2. 参数:无。
    onError(String error):
  3. 调用时机:小程序发生脚本错误,或者 api 调用失败时触发。在小程序发生错误的时候,会把错误信息发送到这个函数中,所以可以在这个函数中做一些错误收集。
  4. 参数:error。

onPageNotFound(Object):

  1. 调用时机:小程序要打开的页面不存在时触发。一般在代码更新的时候,有些页面被删除了,但是其他地方没有改过来的情况下会发生这种情况,或者一些活动页面,活动结束后被关掉了。也可以在这个里面做一些错误的收集和页面的重新跳转。
  2. 参数:
    | 字段 | 类型 | 说明 | | :— | :— | :— | | path | String | 不存在页面的路径 | | query | Object | 打开不存在页面的
    query | | isEntryPage | Boolean | 是否本次启动的首个页面(例如从分享等入口进来,首个页面是开发者配置的分享页面) |
  3. 开发者可以在 onPageNotFound 回调中进行重定向处理,但必须在回调中同步处理,异步处理(例如 setTimeout 异步执行)无效。示例代码:
    App({ onPageNotFound(res) { wx.redirectTo({ url: ‘pages/…’
    }) // 如果是 tabbar 页面,请使用 wx.switchTab
    }
    })
  4. 注意:如果开发者没有添加 onPageNotFound 监听,当跳转页面不存在时,将推入微信客户端原生的页面不存在提示页面。 如果 onPageNotFound 回调中又重定向到另一个不存在的页面,将推入微信客户端原生的页面不存在提示页面,并且不再回调 onPageNotFound。
getApp():

获取当前的 app 对象。一般在其他的 page 页面中调用。有以下两个注意点:

  1. 不要在定义于 App() 内的函数中调用 getApp() ,使用 this 就可以拿到 app 实例。
  2. 通过 getApp() 获取实例之后,不要私自调用生命周期函数。

Page对象

详情请参考:

Page对象作用:

Page(Object) 函数用来注册一个页面。接受一个 Object 类型参数,其指定页面的初始数据、生命周期回调、事件处理函数等。

数据渲染:

需要放在模板中进行渲染的数据,需要放在 Page 对象的 data 属性中。示例代码如下:

Page({
data: {
person: {
username: "", age: 18 } }})

如果以后想要修改 data 中的值,应该使用 setData 方法。 setData 函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 this.data 的值(同步)。注意事项:

  1. 直接修改 this.data 而不调用 this.setData 是无法改变页面的状态的,还会造成数据不一致。
  2. 放到 data 中的值,只能使用可以 JSON 序列化的:字符串,数字,布尔值,对象,数组。否则将不会渲染。
  3. 其中 key 可以以数据路径的形式给出,支持改变数组中的某一项或对象的某个属性,如 array[2].message , a.b.c.d ,并且不需要在 this.data 中预先定义。

Page生命周期函数:

onLoad(Object query):

页面加载时触发。一个页面只会调用一次,可以在 onLoad 的参数中获取打开当前页面路径中的参数。一般建议在这个函数中做一些页面的数据初始化工作。

onShow():

页面显示/切入前台时触发。比如新推入了一个新的页面,那么原来的页面就处于后台,这时候如果把新页面又移除掉,那么下面的页面就会调用 onShow 方法。

onReady():

页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互了。对界面内容进行设置的 API 如 wx.setNavigationBarTitleText ,比较合适在这个里面执行。

onHide()

页面隐藏/切入后台时触发。如 navigateTo 或底部 tab 切换到其他页面,小程序切入后台等。

onUnload()

页面卸载时触发。如 redirectTo 或 navigateBack 到其他页面时。

路由:

在小程序中所有页面的路由全部由框架进行管理。 getCurrentPages() 可以获取当前状态下的页面栈。

转载地址:https://maoli.blog.csdn.net/article/details/89463427 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:二十、Pyecharts数据可视化
下一篇:虚拟机ip出现异常

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月11日 19时30分22秒