美文网首页程序员
微信小程序WXS模拟过滤器

微信小程序WXS模拟过滤器

作者: 童话_xxv | 来源:发表于2018-11-30 09:34 被阅读0次

    在微信小程序实际开发应用中,后台接口返回数据里面有时会有数据转换,有时候用循环进行转换比较麻烦,这时我就想到了Vue里面的过滤器,可是小程序没有官方过滤器,这时候可以用 WXS来模拟过滤器。
    首先来看一下WXS是什么吧。
    WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面结构。
    1. wxs 不依赖于运行时的基础库版本,可以在所有版本的小程序中运行。
    2. wxs 与 javascript 是不同的语言,有自己的语法,并不和 javascript 一致。
    3. wxs 的运行环境和其他 javascript 代码是隔离的,wxs 中不能调用其他 javascript 文件中定义的函数,也不能调用小程序提供的API。
    4. wxs 函数不能作为组件的事件回调。
    5. 由于运行环境的差异,在 iOS 设备上小程序内的 wxs 会比 javascript 代码快 2 ~ 20 倍。在 android 设备上二者运行效率无差异。

    一、直接在页面渲染
    1.wxml页面中:

    <wxs module="m1">
    var msg = "hello world";
    module.exports.message = msg;
    </wxs>
    <view> {{m1.message}} </view>
    

    页面输出:
    hello world

    二、在wxs文件中导出
    1.在utils文件夹里面新增一个filter.wxs文件

    // 价格格式化  过滤器的使用
    function price(num) {
      if (parseFloat(num).toString() == "NaN") {
        return 0.00;
      } else {
        var price = num / 100;
        return price.toFixed(2);
      }
    }
    module.exports = {
      price: price
    }
    

    2.在js的data里面定义list

    //data里面
      data: {
        list: [{
            title: '红富士',
            money: 1000
          },
          {
            title: '猕猴桃',
            money: 1234
          },
          {
            title: '红心柚',
            money: 2345
          },
        ]
      },
    

    3.在wxml中引入

    //引入filter.wxs
    <wxs module="filter" src="../utils/filter.wxs" />
    <view class='title'> 水果特价:</view>
    <view class='item' wx:for="{{list}}" wx:key="index">
        <text>{{item.title}}:</text>
        <text>{{filter.price(item.money)}} (¥)</text>
    </view> 
    

    页面输出:
    水果特价:
    红富士:10.00 (¥)
    猕猴桃:12.34 (¥)
    红富士:23.45 (¥)

    注意:
    1.wxs文件不能被js文件引用,能引用wxs文件;
    2.wxs 中不能调用 javascript 中定义的函数或者变量,也不能调用小程序提供的API,他的运行环境和 javascript 是隔离的。
    4.wxs目前似乎并不支持ES6(至少let不能使用);
    5.只能使用 var 来定义变量,表现形式和 javascript 一样,会有变量提升;
    6.不支持使用 new Date(),获取当前日期要用getDate() 。


    haha.gif

    相关文章

      网友评论

        本文标题:微信小程序WXS模拟过滤器

        本文链接:https://www.haomeiwen.com/subject/ruirqqtx.html