1.如何定义全局数据

  在app.js的App({})中定义的数据或函数都是全局的,在页面中可以通过var app = getApp();  app.function/key的方式调用,不过我们没有必要再app.js中定义全局函数。

定义 全局函数 如下图:

2.如何实现代码的复用

  实现函数的复用前我们先复习一个知识点:require 用来加载代码,而 exports 和 module.exports 则用来导出代码。module.exports 对象是由模块系统创建的。在我们自己写模块的时候,需要在模块最后写好模块接口,声明这个模块对外暴露什么内容,module.exports 提供了暴露接口的方法。

 测试代码如如下:

test.js
function test(){
}
module.exports={
test:test
} other.js
var common = require('test.js');
page({
  common.test()
})

3.微信小程序的组件化开发

微信小程序已经提供了很多现成的组件,实现 组件化开发 非常容易,可是,在我们实际业务中,还有一些需要自己去开发的组件,有些组件在很多页面重复出现,如果不封装成公共的组件就会造成代码的重复率较多,大家都知道,微信小程序前端开发包是有大小限制的,那就是小于2M,所以微信小程序的组件化开发是很有必要的。

<template name="odd">
<view> odd </view>
</template>
<template name="even">
<view> even </view>
</template> <block wx:for="{{[1, 2, 3, 4, 5]}}">
<template is="{{item % 2 == 0 ? 'even' : 'odd'}}"/>
</block>
//我们页可以把模板定义在其他文件中,以<import src="url"/>的形式引入,但是import有作用域的概念,即只会import目标文件中定义的template,
而不会import目标文件import的template
//include可以将目标文件除了<template/>的整个代码引入,相当于是拷贝到include位置。

如何在微信小程序定义全局变量、全局函数、如何实现 函数复用 模块化开发等问题详解的更多相关文章

  1. 微信小程序:封装全局的promise异步调用方法

    微信小程序:封装全局的promise异步调用方法 一:封装 function POST(url, params) { let promise = new Promise(function (resol ...

  2. 微信小程序:页面全局参数(注意不是小程序的全局变量globalData)

    为什么要使用页面全局参数:方便使用数据. 由于总页数需要再另外的一个方法中使用,所以要把总页数变成一个页面全局参数.因为取数据使用this.xxx即可,中间不用加data,给页面全局参数赋值页方便,直 ...

  3. 微信小程序设置全局变量

    为了提高程序的可用性我们在做项目的时候一定要设置全局变量 微信小程序里面有个app.js,我们可以在这个里面设置全局变量, globalData:{ userInfo:null, test:" ...

  4. 微信小程序之明源商城系列-01-商城介绍及开发准备

    1,效果展示 数据来自于写的一个小爬虫爬了明源商城部分的数据.由于价格的保密性,下列产品价格和真实的都不同. 1.1 主页及开发文件结构 1.2  产品的详细页面 1.2  产品分类页面 1.3 产品 ...

  5. 承接微信小程序外包 H5外包就找北京动点软件开发团队

    承接小程序外包 微信小程序外包 H5外包 就找北京动点软件 长年承接微信小程序.微信公众号开发 全职的H5开发团队,开发过几十款微信小程序公众号案例 欢迎来电咨询,索取案例! QQ:372900288 ...

  6. 微信小程序,全局变量方法的使用

    方法一:app.js 内设置全局变量(如屏宽,屏高的设置) 1.app.js文件,定义全局变量 /定义全局变量 globalData:{ userInfo:null, sysInfo:null, wi ...

  7. 微信小程序自学第三课:文件作用域,模块化

    一.文件作用域 在 JavaScript 文件中声明的变量和函数只在该文件中有效:不同的文件中可以声明相同名字的变量和函数,不会互相影响. 通过全局函数 getApp() 可以获取全局的应用实例,如果 ...

  8. 微坑---微信小程序ios上时间字符串转换为时间戳时,在开发工具上和安卓手机上运行成功

    给定一个时间字符串  var time="2017-02-27 16:42:53" js有三种转换为时间戳的方法:1.var timestamp = Date.parse(time ...

  9. 微信小程序只之全局存储

    全局变量 app.globalData 本地缓存 wx.setStorageSync(KEY,DATA) wx.getStorageSync(KEY) wx.getStorageInfoSync wx ...

随机推荐

  1. 微信小程序rich-text 文本首行缩进和图片居中

    微信小程序开发使用rich-text组件渲染html格式的代码,常常因为不能自定义css导致文本不能缩进,以及图片不能居中等问题,这里可以考虑使用js的replace方法,替换字符串,然后在渲染的同时 ...

  2. javascript封装函数入门

    封装函数的入门 一.使用函数有两步: 1.定义函数,又叫声明函数, 封装函数. 定义函数的三个要素:功能,参数,返回值. function 函数名(形参){ 函数代码 return 结果} //2.调 ...

  3. spring boot mybatis打印SQL语句

    在logback-spring.xml 文件中添加 <logger name="com.ibatis" level="DEBUG" /> <l ...

  4. 简单使用sp_executesql 参数化

    declare @totalCount1 int output declare @id1 varchar(10) declare @strsql1 nvarchar(max)=N'' declare ...

  5. disconf使用小结

    disconf使用小结 目前我们公司用的分布式配置中心是disconf,对于普通的spring项目集成还是比较方便,主要功能点分布式配置还有配置的动态更新通知 安装disconf服务端 参考地址htt ...

  6. java-数组排序--插入排序

    插入排序 想象着你的左手拿着一手好牌[1,1,1,2,6,6,6,9,9],此时你从桌面上又抽出一张牌[1],你将抽出的牌,从又往左,依次与左手的牌进行比较(只以数字进行对比),当抽出的牌第一次不再大 ...

  7. quartz之CronExpression表达式

    一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素.按顺序依次为1.秒(~).分钟(~).小时(~).天(月)(~,但是你需要考虑你月的天数).月(~).天(星期)(~ =SUN 或 SU ...

  8. XAML控件不可访问,它具有一定的保护级别

    其它namespace的代码访问控件时会出现这个问题 需要把控件状态由protected改为public <TextBlock x:FieldModifier="public" ...

  9. fidderl 录制导出 jmeter格式文件

    总共需要五步 1.下载扩展脚本 2.将下载后的文件剪切到 fiddler 安装目录下 3.重新启动fillder 4.设置筛选条件 5.录制完成后导出文件 1.下载扩展脚本 首先需要下载支持jmete ...

  10. Swagger2教程

    Swagger2教程 作用:编写和维护接口文档. 一.Swagger2 + SpringBoot集成 1.依赖 <!--依赖管理 --> <dependencies> < ...