【小程序】WXS解讀

1官方解讀

  • wxs 與 javascript 是不同的語言,有自己的語法,并不和 javascript 一致。其實也差不多。
  • wxs 的運行環(huán)境和其他 javascript 代碼是隔離的,wxs 中不能調用其他 javascript 文件中定義的函數(shù),也不能調用小程序提供的API。
  • wxs 函數(shù)不能作為組件的事件回調。
  • 由于運行環(huán)境的差異,在 iOS 設備上小程序內的 wxs 會比 javascript 代碼快 2 ~ 20 倍。在 android 設備上二者運行效率無差異。

2用途和使用場景

  • wxs是專門用于wxml頁面的,主要在視圖層調用函數(shù)
  • wxs和js不能互相直接調用,有的事情,用wxs和js都能實現(xiàn),但是你會發(fā)現(xiàn)用wxs更方便、直接。
  • 頁面中的一些常量放在wxs中
var MAX_COUNT = 19
module.exports = {
    MAX_COUNT: MAX_COUNT
}
  • 檢查手機格式的函數(shù)放在wxs中來使用。
  • 格式化金額

3具體用法

工具類函數(shù)

var moneyFormat = function (num) {
  if(null==""){return ""}
  num = parseFloat((num + "").replace('/[^\d\.-]/g', "")).toFixed(2) + "";
  var integ = num.split(".")[0].split("").reverse(), deci = num.split(".")[1];
  var space = "";
  for (i = 0; i < integ.length; i++) {
    space += integ[i] + ((i + 1) % 3 == 0 && (i + 1) != integ.length ? "," : "");
  }
  var text = space.split("").reverse().join("") + "." + deci;
  if (text.substring(text.length - 3) == ".00") {
    text = text.substring(0, text.length - 3)
  } else if (text.substring(text.length - 1) == "0") {
    text = text.substring(0, text.length - 1)
  }
  return text
}
module.exports = {
    moneyFormat : moneyFormat
}

將wxs引入到wxml中,設置module名為tool,引入的時候,wxs標簽src填寫相對路徑(絕對路徑無效)

<wxs src="../../tool.wxs" module="tool" />

wxml中使用函數(shù)

    <view class="pay-right">
      <text>¥{{tool.moneyFormat(originalCost)}}</text>
      <text>-¥{{tool.moneyFormat(shopInfo.promAmt)}}</text>
      <text>+¥{{tool.moneyFormat(postage)}}</text>
      <text wx:if="{{usePcardAmt > 0}}">-¥{{tool.moneyFormat(usePcardAmt)}}</text>
      <text wx:if="{{useAccAmt > 0}}">-¥{{tool.moneyFormat(useAccAmt)}}</text>
      <text wx:if="{{useCrdtAmt > 0}}">-¥{{tool.moneyFormat(useCrdtAmt)}}</text>
    </view>

4結合JS函數(shù)使用

無論是WXS函數(shù)和JS函數(shù)都是能操作data數(shù)據(jù),很多時候通過JS函數(shù)得到data,然后用WXS函數(shù)處理。
驗證郵箱

// 通過正則來檢驗郵箱是否有效
var validateEmail = function(email) {
    var reg = getRegExp('^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$')
    return reg.test(email)
}

module.exports = {
    validateEmail: validateEmail
}
//頁面使用,WXS函數(shù)使用data:email
<!-- 通過檢測郵箱是否有效,來設置相應的class,再在wxss中寫好相應的樣式 -->
<input class="email_input {{util.validateEmail(email)?'':'error'}}" placeholder='請輸入郵箱' value='{{email}}' bindinput='emailInput'></input>
//JS函數(shù)獲取data
emailInput(e){
        let that = this
        let email = e.detail.value // 獲取輸入框的數(shù)據(jù)
        that.setData({
            email
        })
    }
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 因新工作主要負責微信小程序這一塊,最近的重心就移到這一塊,該博客是對微信小程序整體的整理歸納以及標明一些細節(jié)點,初...
    majun00閱讀 7,633評論 0 9
  • 概要 64學時 3.5學分 章節(jié)安排 電子商務網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,799評論 0 3
  • 突然感到了自卑,原來自己所以為特別珍貴特別期待的東西也只不過是別人眼里附庸品,不值一提。不希望自己自卑,自己卻讓自...
    所謂極限閱讀 280評論 0 0
  • 《遇見未知的自己》通過女主人公和老人的對話,以及她自己的思考與實踐來幫助讀者認識生活乃至生命中的困惑—— 我是誰?...
    豆迪閱讀 473評論 0 1
  • 最初的一年半時間,對什么都沒有印象,對工作,對生活,對掙錢都沒有概念,也不知道干的都是什么啊自己。就這樣一晃一晃的...
    流浪人在北京閱讀 257評論 0 0

友情鏈接更多精彩內容