微信小程序Page对象重写

关于重写微信小程序Page对象如下:

let orgainPage = Page; // 保存原本的Page对象
let basePage = function (data) {
  // 生成初始data,如果页面已经有该值不在重新赋值
  if (typeof data.data.dataVal === ‘undefined‘) {
    data.data.dataVal = ‘具体值‘;
  }
  // 重写onLoad默认执行一些初始事件
  let orgainOnLoad = data.onLoad;
  data.onLoad = function (o) {
    // 执行的初始事件 start

    // 执行的初始事件 end
    orgainOnLoad.call(this, o);
  }
  // 默认初始方法,如果页面已经有该方法不在重写该方法
  if (typeof data.orgainFun !== ‘function‘) {
    data.orgainFun = function () {
      // 执行具体函数 start

      // 执行具体函数 end
    }
  }
  return orgainPage(data);
};

重写后的Page可以直接挂到App里面

App({
  onLaunch() { },
   // 直接挂到这边,新页面直接调用app.Base替换Page
  Base: basePage,
  globalData: {}
})

不直接重写Page是因为使用app.json插件时,不允许修改全局变量“Page”。

每个Page页面调用

const app = getApp();
app.Base({
  data: {
  }
})

页面必须有data,不然.call会报错

原文地址:https://www.cnblogs.com/sujianyin/p/10655163.html

时间: 2024-10-31 10:59:52

微信小程序Page对象重写的相关文章

微信小程序视图层WXML_事件

微信小程序视图层WXML_小程序事件 什么是微信小程序事件 小程序事件是视图层到逻辑层的通讯方式. 小程序事件可以将用户的行为反馈到逻辑层进行处理. 小程序事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. 小程序事件对象可以携带额外信息,如id, dataset, touches. 微信小程序事件的使用方式 在小程序组件中绑定一个事件处理函数. 如bindtap,当用户点击该组件的时候会在该微信小程序页面对应的Page中找到相应的事件处理函数. <view id="

微信小程序视图层WXML_小程序事件

微信小程序视图层WXML_小程序事件 什么是微信小程序事件 小程序事件是视图层到逻辑层的通讯方式. 小程序事件可以将用户的行为反馈到逻辑层进行处理. 小程序事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数. 小程序事件对象可以携带额外信息,如id, dataset, touches. 微信小程序事件的使用方式 在小程序组件中绑定一个事件处理函数. 如bindtap,当用户点击该组件的时候会在该微信小程序页面对应的Page中找到相应的事件处理函数. <view id="

微信小程序setData的使用,通过[...]进行动态key赋值

首先先介绍一下微信小程序Page.prototype.setData(Object data, Function callback)的讲解: setData函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的this.data的值(同步) 微信小程序官网文档只对字符串,数字,数组和对象类型的数据通过对setData进行了修改,却没有对动态数据进行讲解,在这里我就针对静态数据以及动态数据的修改进行讲解. 这里关键是动态数据修改,通过使用[...]: "..."进行动态数据赋值,如下

微信小程序配置_小程序页面配置

微信小程序配置_小程序页面配置 我们使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. 以下是一个包含了所有配置选项的简单配置app.json : { "pages": [ "pages/index/index", "pages/logs/index" ], "window": { "navigationBarTitleText": &q

微信小程序的生命周期和APP对象的使用

1.生命周期和APP对象的使用: //app.js App({ onLaunch: function () { //调用API从本地缓存中获取数据 var logs = wx.getStorageSync('logs') || [] logs.unshift(Date.now()) wx.setStorageSync('logs', logs) }, onShow: function() { console.log("onShow") }, onHide: function() { c

微信小程序基于腾讯云对象存储的图片上传

在使用腾讯云对象存储之前,公司一直使用的是传统的FTP的上传模式,而随着用户量的不断增加,FTP所暴露出来的问题也越来越多,1.传输效率低,上传速度慢.2.时常有上传其他文件来攻击服务器,安全上得不到保障.所以我们在经过慎重考虑觉得使用第三方的云存储服务. 在最开始的时候我们在腾讯云与阿里云中选择,最终我们选择腾讯云,腾讯云在文件上传用时方面的性能比较突出,文件越大表现越好:在下载用时方面表现略优于阿里云:文件删除用时方面总体速度略逊于,但在不同大小文件删除用时上都比较稳定.当然这与我们主要用于

微信小程序学习Course 4-2 JS数组对象学习

微信小程序学习Course 3-2 JS数组对象学习 本节主要介绍JS中的数组. 3-2.1 数组的声明 数组声明的方式多种,如下例.一般我们可以先创建一个空数组,然后再填充. var names = [];//创建一个空数组 var names = ["sadad","asdsad"];//创建一个包含两个字符串的数组 var names = new Array(3);//创建一个包含三个元素的数组 3-2.2 数组的增添 数组有多种增添方式,一种是栈方式,另一种

(uniapp和)微信小程序页面跳转首页报错:navigateTo:fail can not navigateTo a tabbar page

如果在这种情况下无法实现跳转并出现can not navigate to tabBar page错误, 很有可能是由于在底部tabbar里面定义乐同样连接地址的bar,如果在底部footer页面定义了相同地址的bar,则此页面无法跳转, 解决方法: 使用uniapp或微信小程序的 uni.switchTab({         url: '路径'}); wx.switchTab({         url: '路径'}); 原文地址:https://www.cnblogs.com/fanqiuz

你自认为了解微信小程序?醒醒吧!

小程序目前被炒得沸沸扬扬,无数业内业外人士都对此雄心勃勃,希望占据先机,借此一统江湖,千秋万代.这再次证明一点,微信想让什么火,什么就能火.这种能力目前在国内估计也是无人能出其右了-- 好了,废话不多话,言归正传.作为一个要成为成功人士的男人,利用国庆的时间,我好好的研究了一下微信小程序,发现网上很多言论对于微信小程序的言论,在一定区间存在理解上的误区.接下来的内容,我假定你已经初步的了解过微信小程序,如果你还不了解,请移步开发文档,然后再回来阅读本文. 一.小程序到底是不是Html5 关于这一