微信小程序-注册app和page

news/2024/7/20 3:56:49 标签: 微信小程序, 小程序, javascript

小程序>微信小程序-注册app和page

app

判断进入的场景

javascript">App({
    //小程序初始化完成时触发,全局只触发一次
  onLaunch(options){
    console.log(options);
  },
    //小程序启动,或从后台进入前台显示时触发
  onShow(options){
    // 判断小程序的进入场景
    console.log('onshow',options);
  },
    //小程序从前台进入后台时触发  小程序隐藏时候触发
  onHide(options){
    console.log('onhide',options);
  }
 
})

在这里插入图片描述

定义全局app的数据-实现数据的共享

1,app.js里定义数据

javascript">App({
  // 数据不是响应式的,这里共享的数据都是一些固定的数据
  global:{
    userInfo:{
      name:"hahaha",
      age:"12"
    }
  },

2.要共享的目标文件

javascript">// pages/favor/favor.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
   user:{}
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {
    // 获取共享中的数据:app实例中的数据
    // 1.获取app实例对象
    const app=getApp()
    // 从app实例对象获取数据
      const user= app.global.user
      console.log(user);
      // 2.拿到数据发送网络请求

      // 3.将数据展示到页面上
     // this.data.user=user   错误写法   小程序不是vue  只能直接操作data
     this.setData({
       user:user
     })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})

3,页面展示

javascript"><!--pages/favor/favor.wxml-->
<view>
  <view>
    name:{{user.name}}
  </view>
</view>

onLaunch生命周期

javascript">//app.js  判断登 
// 数据不是响应式的,这里共享的数据都是一些固定的数据
  global:{
    token:"",
    user:{
  }
onLaunch(options){
    //console.log(options);
    // 本地获取token /user
    const token = wx.getStorageSync("token")
    const user = wx.getStorageSync("user")
    console.log('to',token);
    // 1.进行登陆操作
    //  2将登录成功的数据存入storage
    if(!token||!user){
      console.log("登录操作");
      wx.setStorageSync('token', "haha")
      wx.setStorageSync('user', {name:"kekeke",age:12})
    }
    // 将获取的数据保存到global中
    this.global.token=token
    this.global.user=user
  },

页面-page函数

小程序中的每个页面,都有一个对应的js文件其中page函数注册页面

在注册时候可以绑定初始化数据,生命周期回调 事件处理函数

案例

javascript"><view class="buttons">
    <button bindtap="onclick">按钮1</button>
    <block wx:for="{{btns}}" wx:key="*this">
      <button    
        class="btn"
        style="background: {{item}};"
        bindtap="onclick1"
        data-color="{{item}}"
      >
      {{item}}
      </button>
    </block>
  </view>
</view>
<view class="list">
  <block wx:for="{{30}}" wx:key="*this">
    <view>
      列表数据:{{item}}
    </view>
  </block>
</view>
javascript">// pages/01_register_page/index.js
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 定义本地固定数据
    counter:100,
    btns: ["red", "blue", "green", "orange"]
  },

 
  onclick(){
    console.log("11");
  },
  onclick1(event){
   //console.log('btn',event.target.dataset.color);
   console.log(event);
  },
  // 绑定下拉刷新 达到底部   、页面滚动
  onPullDownRefresh(){
    console.log("onPullDownRefresh");
  },
  onReachBottom(){
    console.log("onReachBottom");
  },
  onPageScroll(event){
    console.log("onPageScroll",event);
  },
  // 生命周期函数: 
  onShow() {
    console.log("onShow");
  },
  onReady() {
    console.log("onReady");
  },
  onHide() {
    console.log("onHide");
  },
  onUnload() {
    console.log("onUnload");
  }
})

http://www.niftyadmin.cn/n/200754.html

相关文章

【springboot】自动加载分析

文章目录问题SpringBootApplication注解AutoConfigurationPackages.Registrar类AutoConfigurationImportSelector类springboot如何加载其他的starter总结问题 为什么我们在使用springboot的时候&#xff0c;只需要在maven中导入starter就能够使用呢&#xff1f;这里来分析一下…

类的加载过程-过程二:Linking阶段

链接过程之验证阶段(Verification) 当类加载到系统后&#xff0c;就开始链接操作&#xff0c;验证是链接操作的第一步。 它的目的是保证加载的字节码是合法、合理并符合规范的。 验证的步骤比较复杂&#xff0c;实际要验证的项目也很繁多&#xff0c;大体上Java虚拟机需要做…

排序算法之不同版本的快速排序

快速排序思想&#xff1a;选取一个关键字&#xff0c;通过一趟排序将这些待排序的数据分隔为两个部分&#xff0c;一部分数据全小于关键字&#xff0c;一部分数据全大于关键字&#xff0c;通过一趟排序就可以将一个关键字排好序&#xff0c;然后再可以对这两部分执行相同类似的…

python提取多个pdf特定页,并合并为新pdf文件

文章目录1&#xff0c;代码结构2&#xff0c;代码详解2.1&#xff0c;将范围字符串转成list2.2&#xff0c;获取pdf文件特定页2.3&#xff0c;将pdf页list合并为pdf文件并保存2.4&#xff0c;遍历所有要合并的文件&#xff0c;进行合并2.5&#xff0c;给出要合并的pdf文件及范围…

基于Spring boot的外卖项目瑞吉外卖Day10使用Redis缓存技术

环境搭建 一、maven坐标 在项目的pom.xml文件中导入spring data redis的maven坐标 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency>二、配置文件 在…

【多线程与高并发应用】1、借助addShutdownHook和线程的join方法优雅的退出while(true)循环(Scala实现)

addShutdownHook 是jvm中的关闭钩子。当程序退出时&#xff0c;会执行添加的shutdownHook线程。其中shutdownHook是一个已初始化但并没有启动的线程&#xff0c;当jvm关闭的时候&#xff0c;会执行系统中已经设置的所有通过方法addShutdownHook添加的钩子&#xff0c;当系统执行…

高频算法:Leetcode53 最大子数组和

今天讲的是Leetcode第53题&#xff0c;最大子数组和 首先观察题目&#xff0c;题目需要我们找出具有最大和的连续子数组&#xff0c;直接拿题目中的示例来做一个演示&#xff0c;找一找什么规律下的连续子数组才能得到最大的和 先从-2开始&#xff0c;-2 1 -1 此时我们的和…

326. 3 的幂 ——【Leetcode每日一题】

326. 3 的幂 给定一个整数&#xff0c;写一个函数来判断它是否是 3 的幂次方。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 整数 n 是 3 的幂次方需满足&#xff1a;存在整数 x 使得 n3xn 3^xn3x。 示例 1&#xff1a; 输入&#xff1a;n 27 …