一个小程序页面由四个文件组成,一个小程序页面的四个文件具有相同路径与文件名,由此我们可知一个小程序页面对应着一个跟页面同名的js文件。可是当有些公共方法,我们想抽离出来成为一个独立公共的js文件。我们该如何实现呢。

在根目录下有一个app.js文件。这个根目录的js 文件我们可以通过getApp()轻松调用。

1.//app.js
 2.App({
 3.globaData:'huangenai'
 4.})​​​​​​​
 5.//test.js
 6.var app = getApp();
 7.Page({
 8.onLoad: function () {
 9.console.log(app.globaData);
 10.} 
 11.})

在开发者工具的 Console可以看到

那么当一些通用的公共方法我们抽出来,在根目录下有个utils文件夹(没有的话新建),里面util.js(没有的话新建)在这里我们可以将通用的方法写在这。

1.util.js​​​​​​​
 2.//正则判断
 3.function Regular(str, reg) {
 4.if (reg.test(str))
 5.return true;
 6.return false;
 7.}​​​​​​​
 8.//是否为中文
 9.function IsChinese(str) {
 10.var reg = /^[\u0391-\uFFE5]+$/;
 11.return Regular(str, reg);
 12.}
 13.//去左右空格;
 14.function trim(s){
 15.return s.replace(/(^\s*)|(\s*$)/g, "");
 16.}​​​​​​​
 17.//最下面一定要加上你自定义的方法(作用:将模块接口暴露出来),否则会报错:util.trim is not a function;
 18.module.exports = {
 19.IsChinese: IsChinese,
 20.trim: trim
 21.}
1.//test.js​​​​​​​
 2.var util = require('../../utils/util.js');
 3.Page({
 4.onLoad: function () {
 5.console.log("判断是否为中文:"+util.IsChinese('测试'));
 6.console.log("去除左右空格:" + util.trim(s));
 7.}
 8.})

在开发者工具的 Console可以看到

注意了,在util.js里的 Regular()方法,我们不可以这样调用util.Regular(),因为我们没有用 module.exports 来暴露模块接口

如果直接 调用则会出现这样的错误

1.thirdScriptError
 2.util.Regular is not a function;at "pages/test/test" page lifeCycleMethod onLoad function
 3.TypeError: util.Regular is not a function

更多推荐

微信小程序开发—引用公共js里的方法