当前位置: 首页 > news >正文

【小程序入门】App函数注册小程序实例

🍳作者: 贤蛋大眼萌,一名很普通但不想普通的程序媛 \color{#FF0000}{贤蛋 大眼萌 ,一名很普通但不想普通的程序媛} 贤蛋大眼萌,一名很普通但不想普通的程序媛🤳

🙊语录: 多一些不为什么的坚持 \color{#0000FF}{多一些不为什么的坚持} 多一些不为什么的坚持

📝本文章收录于专栏:小程序从0到放飞自我

PS: 💭 眼过千遍不如手锤一遍:推荐一款模拟面试,斩获大厂 o f f e r ,程序员的必备刷题平台 − − 牛客网 \color{#ff7f50}{眼过千遍不如手锤一遍:推荐一款模拟面试,斩获大厂offer,程序员的必备刷题平台--牛客网} 眼过千遍不如手锤一遍:推荐一款模拟面试,斩获大厂offer,程序员的必备刷题平台牛客网
国庆就是弯道超车的好机会,别人游玩我独醒。

求知无坦途,学问无捷径。👣 一步一个脚印,你走过的路,每一步都算数。 \color{#ff7f50}{一步一个脚印,你走过的路,每一步都算数。} 一步一个脚印,你走过的路,每一步都算数。 每一次进步都是对自己努力的肯定,不如一起来学习,一起进步吧。传送门🚪刷题神器

App函数注册小程序实例

    • 🎉 注册小程序 - App函数
      • App函数的参数
    • 🍳 判断打开场景
    • 🥩 定义全局APP数据
    • 🍬 生命周期函数

🎉 注册小程序 - App函数

​ 每个小程序都需要在 app.js 中调用 App 函数注册小程序实例。在注册时, 可以绑定对应的生命周期函数。App(Object object) | 微信开放文档 (qq.com)

​ 注册App时,一般会做:

  1. 判断小程序的进入场景
  2. 监听生命周期函数,在生命周期中执行对应的业务逻辑,比如在某个生命周期函数中进行登录操作或者请求网络数据;
  3. 因为App()实例只有一个,并且是全局共享的(单例对象),所以我们可以将一些共享数据放在这里;

image-20220928221600164

App函数的参数

image-20220928221643299

🍳 判断打开场景

常见的打开场景:群聊会话中打开、小程序列表中打开、微信扫一扫打开、另一个小程序打开。微信开放文档 (qq.com)

image-20220928222158011

image-20220928222505148

🥩 定义全局APP数据

​ 可以在Object中定义全局App的数据。因为小程序是没有类似Vuex这样可以存储数据的容器的,所以我们可以把共享数据存在app.js 中,定义一些其他页面都可以访问的数据。

image-20220929100532225

// pages/my/my.js
Page({
  data: {
    userInfo: {}
  },

  onLoad() {
    // 获取共享的数据: App实例中数据
    // 1.获取app实例对象
    const app = getApp()

    // 2.从app实例对象获取数据
    const token = app.globalData.token
    const userInfo = app.globalData.userInfo
    console.log(token, userInfo);

    // 3.拿到token目的发送网络请求
    
    // 4.将数据展示到界面上面
    // this.data.userInfo = userInfo
    this.setData({ userInfo })
    console.log(this.data.userInfo);
  }
})

🍬 生命周期函数

​ 在生命周期函数中,完成应用程序启动后的初始化操作。

image-20220929102030179

image-20220929103119464

完整app.js代码

// app.js
App({
  // 作用二: 共享数据
  // 数据不是响应式, 这里共享的数据通常是一些固定的数据
  globalData: {
    token: "",
    userInfo: {}
  },
  onLaunch(options) {
    // 0.从本地获取token/userInfo
    const token = wx.getStorageSync("token")
    const userInfo = wx.getStorageSync("userInfo")

    // 1.进行登录操作(判断逻辑)
    if (!token || !userInfo) {
      // 将登录成功的数据, 保存到storage
      console.log("登录操作");
      wx.setStorageSync("token", "kobetoken")
      wx.setStorageSync("userInfo", { nickname: "elva", level: 100 })
    }

    // 2.将获取到数据保存到globalData中
    this.globalData.token = token
    this.globalData.userInfo = userInfo


    // 3.发送网络请求, 优先请求一些必要的数据
    // wx.request({ url: 'url'})
  },
  onShow(options) {
    // 作用一: 判断小程序的进入场景
    console.log("onShow:", options);
  },
  onHide() {
    console.log("onHide");
  }
})

在这里插入图片描述

相关文章:

  • 【Linux从0到1】第十七篇:高级IO
  • 一起来做个CH347的项目(应用于FPGA、CPLD、MCU)
  • 特征筛选还在用XGB的Feature Importance?试试Permutation Importance
  • 06-ServletRequest
  • Spring Cloud Alibaba系列之nacos:(4)配置管理
  • 一篇五分生信临床模型预测文章代码复现——Figure 3. 基因富集分析(二)
  • 深度学习——day34 读论文:深度 ReLU 网络在特征提取和泛化中的深度选择(2022 Q1)
  • STM32G474产生一个锯齿波
  • 蓝队视角下的防御体系怎样进行突破
  • 排序算法 | 快排、冒泡、堆排、归并、基数、递归、希尔、计数
  • [平台运维、Hadoop]kafka streams概述
  • 【祝福伟大的祖国】Java Web 9.2 Request 对象 9.2.5 请求参数中文乱码问题
  • 《When you are old》一如苇中的风,轻柔却难忘
  • JavaFX实战:模拟电子琴弹奏效果,鼠标弹奏一曲piano送给大家
  • 基于VC++和AT89C52单片机的数字存储示波器设计
  • 【前端学习】-粗谈选择器
  • 4月23日世界读书日 网络营销论坛推荐《正在爆发的营销革命》
  • 77. Combinations
  • axios 和 cookie 的那些事
  • conda常用的命令
  • Java|序列化异常StreamCorruptedException的解决方法
  • java8 Stream Pipelines 浅析
  • Java深入 - 深入理解Java集合
  • laravel with 查询列表限制条数
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • python_bomb----数据类型总结
  • Redis的resp协议
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 浮动相关
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端_面试
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 听说你叫Java(二)–Servlet请求
  • 我从编程教室毕业
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 交换综合实验一
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • #pragma data_seg 共享数据区(转)
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • (BFS)hdoj2377-Bus Pass
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (二)Eureka服务搭建,服务注册,服务发现
  • (二)Linux——Linux常用指令
  • (力扣)循环队列的实现与详解(C语言)
  • (每日持续更新)jdk api之StringBufferInputStream基础、应用、实战
  • *Algs4-1.5.25随机网格的倍率测试-(未读懂题)
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net core 依赖注入的基本用发
  • .Net Core和.Net Standard直观理解
  • .Net Remoting(分离服务程序实现) - Part.3
  • .NET 设计模式初探
  • .NET 设计模式—简单工厂(Simple Factory Pattern)
  • .NET中 MVC 工厂模式浅析