【WeChatアプレット】wxsのアプリケーションは、xwmlでwebと似たようなものを実現します.これはJavaScriptコードを使用しています.


1、概要
 WXS(WeiXin Script)は、アプレットのスクリプト言語のセットです.  WXMLは、ページの構造を構築することができる.WXSとJavaScriptは違う言語で、自分の文法があります.JavaScriptと一致していません.
公式文書:https://developers.weixin.qq.com/miniprogram/dev/reference/wxs/
2、応用
 WXSコードはwxmlファイルで作成できます.   ラベル内、または  .wxs 拡張子の名前のファイル内です.
一つずつ  .wxs ファイルと   ラベルは個々のモジュールです.すなわちモジュール内で定義されている変数と関数は、デフォルトではプライベートです.他のモジュールには見えません.
各  wxs モジュールは内蔵のモジュールがあります. オブジェクトは、export属性により、このモジュールのプライベート変数と関数を外部に共有することができます.
属性名
タイプ
標準値
説明
module
String
 
現在   ラベルのモジュール名.必須フィールドです
src
String
 
参照.wxsファイルの相対パス.このラベルが単閉ラベルまたはラベルの内容が空の場合のみ有効です.
2.1 wxmlファイルで直接wxsコードを作成する
①最も簡素な二数加算関数を例にとって、  module.exports wxsモジュール内の関数の外部露出を実現します.

  module.exports = function (a, b) {
    return a + b;
  };

{{add(1, 2)}}
②複数の関数または変数は、オブジェクトを用いて、2つのカウントの加算と2つのカウントの減算関数を例に挙げます. 

  var filter = {
    
    add: function (a, b) {
      return a + b;
    },

    subtract: function (a, b) {
      return a - b;
    },

  };
  module.exports = filter;

{{func.add(1, 2)}}
{{func.subtract(1, 2)}}
2.2 wxmlファイルから外部wxsファイルを参照する
Step 1:wxsファイルを新規作成する
date.wxs:情報処理時間の関数として、Date形式の日付を「ただいま」「?分前」「?前」などの時間テキストに変換します.

var filter = {
  formatMsgTime: function (dateStr) {
    var targetDate = getDate(dateStr);
    var year = targetDate.getFullYear();
    var month = targetDate.getMonth() + 1;
    var day = targetDate.getDate();
    var hour = targetDate.getHours();
    var minute = targetDate.getMinutes();
    var second = targetDate.getSeconds();
    var nowDate = getDate();
    var now_new = Date.parse(nowDate.toDateString());
    var milliseconds = 0;
    var timeSpanStr;

    milliseconds = now_new - targetDate;

    if (milliseconds <= 1000 * 60 * 1) {
      timeSpanStr = '  ';
    }
    else if (1000 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60) {
      timeSpanStr = Math.round((milliseconds / (1000 * 60))) + '   ';
    }
    else if (1000 * 60 * 60 * 1 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24) {
      timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60)) + '   ';
    }
    else if (1000 * 60 * 60 * 24 < milliseconds && milliseconds <= 1000 * 60 * 60 * 24 * 15) {
      timeSpanStr = Math.round(milliseconds / (1000 * 60 * 60 * 24)) + '  ';
    }
    else if (milliseconds > 1000 * 60 * 60 * 24 * 15 && year == now.getFullYear()) {
      timeSpanStr = month + '-' + day;
    } else {
      timeSpanStr = year + '-' + month + '-' + day;
    }
    return timeSpanStr;
  }
}

module.exports = {
  formatMsgTime: filter.formatMsgTime
}
注:wxsではnewオブジェクトを作れません.ここでnew Date()に達する効果は大域関数getDate().
Step 2:wxmlファイルに導入する
Step 3:関数を呼び出す
    {{filter.formatMsgTime('2018/07/18 17:07:05')}}
3、例:
var filter = {
  // float   value       
  numberToFix: function (value) {
    return value.toFixed(2);
  },
  //     array      value
  valueInArray: function (array, value) {
    return array.indexOf(value);
  }
}
module.exports = {
  numberToFix: filter.numberToFix,
  valueInArray: filter.valueInArray,
}