微信小程序页面使用类似filter函数的wxs语法

在vue框架中,页面上我们展示有些信息的时候,数据有的是从后台返回的,格式相对固定,有些数据还需要我们做个翻译,比如一些状态1/0,我们展示在页面的时候,显示"成功""失败"。还有一些枚举类的值,我们也需要做一个简单的转化,在vue框架里面,我们可以使用过滤器这样的方式,比如:

{{name | toUpperCase()}}

这个方法就是把名字中的字母转大写。虽然这个功能也可以在获取数据的时候,我们通过js代码直接转化,可是通过过滤器的方式,很直观,代码侵入少。

在微信小程序开发这里,也有这样的功能,不过它的使用和过滤器有些区别。微信小程序这里叫wxs语法,转换的代码需要写在wxs代码块内。

wxs语法不同于一般的javascript语法。无法使用es5语法,变量统一使用var声明。不能使用let,const关键字。

另外一个值得关注的地方,关于日期转化,一般而言,我们日期在后台传过来之后,变成一个字符串,这时候,需要格式化,需要先把它变为一个日期对象,wxs语法里面没有new Date()这样的用法,它直接转日期,有一个javascript方法里面没有的方法getDate()。这个是一个大坑。

一般为了简单,直接把wxs代码块放在wxml页面内,如下是一个日期简单转化的方法。

javascript 复制代码
<wxs module="pagefilter">
  var formatDate = function(date) {
    var newDate = getDate(date)
    var year = newDate.getFullYear()
    var month = newDate.getMonth() + 1
    var day = newDate.getDate()
    return year + "-" + month + "-" + day
  }
  module.exports = {
    formatDate: formatDate
  }
</wxs>

页面上使用的时候:

html 复制代码
<view>{{pagefilter.formatDate(expireDate)}}</view>

这个语法和vue中filter用法不一样,需要modulename.exportsmethod的方式调用。

上面方法中getDate()方法就是把字符串格式日期转日期对象格式,在wxs语法中就有效,javascript语法中却没有这个方法:

所以这里是一个大坑,我们在wxs语法中,可以使用大量的javascript语法,可是,new Date(),new RegExp()这样的就无法使用。

相关推荐
一木 之林6 小时前
Dify学习笔记 03 · RAG检索增强生成:三代范式、评估与落地(第40-45、55-56集)
笔记·小程序·交互·dify
赵小哥要冲啦11 小时前
社区邻里互助小程序从 0 到 1 复盘:需求拆解与信任机制设计
java·小程序·需求分析
河北清兮网络科技16 小时前
石家庄做一套企业知识库系统多少钱?2026 报价明细
小程序·短剧app·广告联盟
Ai-_Man16 小时前
Coze扣子还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·人工智能·ai·小程序·1024程序员节
微订校园外卖平台17 小时前
新手做校园外卖平台:小程序启动顺序与订单链路验收
小程序·外卖系统·本地生活·微订
计算机毕设定制辅导-无忧学长19 小时前
《基于物品协同过滤的闲置书换购微信小程序设计开发》
java·vue.js·spring boot·微信小程序·uniapp·闲置书换购微信小程序·物品协同过滤算法
ngaiwe1 天前
AA我来算小程序实践:把付款人、承担人和结算状态分开建模
微信小程序
FX1317887KP_1 天前
KET口语Part 2看图对话怎么练?“观察—提问—回应”;三步法讲透
小程序·ket口语·pet口语·fce备考·剑桥英语
上线再说2 天前
小程序图片处理从 2.9 秒到 420 毫秒:云函数冷启动的 5 个坑
微信小程序
沃达德软件2 天前
智慧教育教学资源管理系统(PC端+微信小程序)
微信小程序·小程序