小程序:wxs(wxs模塊)


1、模塊

(1)概念

wxs:

腳本語言,不是js語言,結合 wxml,構建出頁面的結構,在IOS設備上要比js快

模塊:

將一些公共的代碼抽離成為一個單獨的 js 文件,作為一個模塊。

(2)模塊的使用

建立公共的邏輯代碼塊,編寫代碼后通過module.exports輸出代碼塊:這里面一共有兩個模塊,為每一個模塊取一個名字

function sayHello(name) {
  console.log(`Hello ${name} !`)
}
function sayGoodbye(name) {
  console.log(`Goodbye ${name} !`)
}
//輸出一個對象,因為里面含有多個模塊
module.exports={
  msg:sayHello,
  msg1:sayGoodbye
}

在需要使用模塊的文件中將模塊引入:

var common = require('common.js')

在需要使用的地方即可使用:通過模塊的別名來調用模塊並傳遞參數

Page({
  helloMINA: function() {
    common.msg('MINA')
  },
  goodbyeMINA: function() {
    common.msg1('MINA')
  },

定義頁面:點擊文字觸發js文件內部的函數,進而調用模塊

<view bindtap="helloMINA">hello</view>
<view bindtap="goodbyeMINA">goodbye</view>

測試:點擊文字,控制台打印數據

 

 

 

2、wxs模塊

(1)概念

WXS 代碼可以編寫在 wxml 文件中的 <wxs> 標簽內,或以 .wxs 為后綴名的文件內

每一個 .wxs 文件和 <wxs> 標簽都是一個單獨的模塊

每個模塊都有自己獨立的作用域。即在一個模塊里面定義的變量與函數,默認為私有的,對其他模塊不可見。一個模塊要想對外暴露其內部的私有變量與函數,只能通過 module.exports 實現。

(2)在wxml頁面內的使用

<wxs module="m1">
var msg = "hello world";

module.exports.message = msg;
</wxs>

<view> {{m1.message}} </view>

 定義一個模塊並輸出,在本頁面可以直接通過模塊名調用輸出的模塊

(3)定義wxs文件的方式

 在wxs文件內定義模塊並輸出:

var foo = "'hello world' from comm.wxs";
var bar = function(d) {
  return d;
}
//輸出兩個模塊
module.exports = {
  foo: foo,
  bar: bar
};
module.exports.msg = "some msg";

在wxml文件內引入模塊並給模塊命名:

<wxs src="common.wxs" module="tools" />
<view> {{tools.msg}} </view>
<view> {{tools.bar(tools.foo)}} </view>

 

3、練習

(1)在utils里面定義模塊

var filter={
  getAgoDate:function(time){
    // var time = "2020-07-01T03:07:18.00"
    //將字符串轉為時間格式
    var date = time.replace("T"," ").replace("Z","");
    console.log(date);
    //得到距離1970.1.1的時間毫秒差值
    var time1 = Date.parse(date);
    //得到當前時間距離1970.1.1的毫秒時間差值
    var time2 = getDate().getTime();
    //得到差值
    var subTime = time2-time1;
    //得到秒 分 時 天 周 月 年
    var minutes = subTime/1000/60;
    var hours = minutes/60;
    var days =hours/24;
    var weeks = days/7;
    var months = weeks/30;
    var str = "";
    if(months>=1){
      str=parseInt(months)+"月前"
    }else if(weeks>=1){
      str=parseInt(weeks)+"周前"
    }else if(days>=1){
      str=parseInt(days)+"天前"
    }else if(hours>=1){
      str=parseInt(hours)+"小時前"
    }else if(minutes>=1){
      str=parseInt(days)+"分鍾前"
    }
    else{
      str = "剛剛";
    }
    return str;
    console.log(str);
  }
}

module.exports={
  getAgoDate:filter.getAgoDate
}

(2)在頁面中引入獲取時間的模塊並進行頁面的渲染

<wxs  module="filter" src="../../utils/util.wxs"></wxs>
<text class="last_active_time">{{filter.getAgoDate(item.last_reply_at)}}</text>

(3)測試結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM