小程序入门模块化开发教程

2018-06-08 16:18

摘要:模块化用来分割,组织和打包软件。每个模块完成一个特定的子功能,所有模块按某种方法组装,成为一个整体。

模块具有以下几种基本属性:接口、功能、逻辑、状态,功能、状态与接口反映模块的外部特性,逻辑反映它的内部特性。微信小程序的模块化是用来分割,组织和打包软件。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。

在系统的结构中,模块是可组合、分解和更换的单元。模块化是一种处理复杂系统分解成为更好的可管理模块的方式。它可以通过在不同组件设定不同的功能,把一个问题分解成多个小的独立、互相作用的组件,来处理复杂、大型的软件。

我们可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过module.exports或者exports才能对外暴露接口。

需要注意的是:

exports是module.exports的一个引用,因此在模块里边随意更改exports的指向会造成未知的错误。所以我们更推荐开发者采用module.exports来暴露模块接口,除非你已经清晰知道这两者的关系。

小程序目前不支持直接引入node_modules, 开发者需要使用到node_modules时候建议拷贝出相关的代码到小程序的目录中。

我们来看看小程序创建时候自带的utils.js文件中使用:

这是一个格式化日期的工具模块:

根据js文件中的方法 new Date()获取系统的当前时间 传递给formatTime,根据year month day格式化时间的格式输出,代码如下:

utils.js代码:注意红标处,这里必须吧这个方法暴露出去,其他的js文件才能使用require获取方法

log.js代码:第一个标签 表示引入了Utils.js里面的方法: 第二个是直接使用在utils中暴露出来的formatTime方法格式化时间。

小程序入门模块化开发教程

使用方法:

/

上面我们已经介绍了一个格式化时间的模板,最近但是最近需要用电话号码注册,需要一个倒计时的button,所以就写了一个:

小程序入门模块化开发教程



首先我们做倒计时时候必须是使用递归的思想去做,还要判断时间是否为0 为0之后需要改变button的数据。注意这里的参数是this,之前的文章也提到了this的作用域,到了utils.js中自然是无法使用的了,而且在使用。this的时候必须与之前Page()函数中data的数据的key是一样的。

最需要注意的就是一定要记得把方法暴露出来:module.exports。在使用的时候一定要使用require引入。


推荐阅读:小程序微信支付接入开发教程    微信小程序开发教程

参与讨论

发表评论