小程序模拟VUE过滤器

做前端的人都知道,vue的过滤器是很好用的,特别是在接收后台数据在前台显示的时候

小程序暂时还没有这项方便的功能,不过最近通过花花同学解锁了新的技能

1.用小程序的.wxs文件来模拟vue的过滤器功能

2.在小程序的js文件中使用公共方法来模拟vue的过滤器功能


下面先来讲第一个种方法~

创建一个.wxs文件,我把它起名为common,表示这是一个公用的过滤器

并在这个文件种写入这样一段代码,以订单状态为例


module.exports={
  //订单状态过滤
  orderStatusFilter:function(param){
    var maps = {
      cutsomer_toSalerConfirmed:'待付款',
      customer_Confirmed:'已付款'
    }
    return maps[param]
  }
}

然后在要用到这个过滤器的.wxml页面里引用wxs文件,就像下面的图片种这样引进来,不过要注意一下路径问题哦

使用起来就非常简单了,像下面这样就好 item.orderStatus就是我要过滤的字段~

是不是非常简单!but也有美中不足的地方,.wxs文件是无法使用小程序api的,这样如果要过滤城市国家这种很多很多的怎么办呢

不要慌张 这时候就可以用第二种方法啦~


第二种方法的先决条件是要与后台配合,让后台传给你可以循环的字段,将后台传过来的那些东西处理一下,变成一个数组,比如像下面这样的

在我的小程序里,我在app.js种请求了一个恶心的借口,在其中提取了这样的字段,并把它变成了这样可爱的数组,顺便存放到了本地存储中(放在本地存储中是因为乐意,也可以放在全局变量中,看你自己的心情)

然后把下面的代码放到一个公共的js中

嗯哼~是不是跟上面那个方法很像,只是把刚刚处理好的数组从本地存储中取出来了而已,使用方法如下,注意要写在js文件中了哦,而不是wxs里

这样就相当与一个麻烦一点的过滤器啦 虽然看起来很麻烦 用起来也很麻烦 不过能用就行了~如果你有更简单的方法,麻烦分享给我吧~

### HBuilderX Vue 文件转换 WXML 方案 在使用 HBuilderX 进行微信小程序开发时,Vue 文件会被自动编译为适合微信小程序使用的 WXML 和 WXSS 文件。以下是关于如何解决可能遇到的转换问题以及优化方法的具体说明。 #### 1. 环境配置与基础设置 确保已按照标准流程完成 HBuilderX 的安装和环境搭建[^1]。创建新的 UniApp 项目后,在 `manifest.json` 配置文件中确认目标平台选择了微信小程序,并正确填写对应的 AppID。 #### 2. Vue 文件到 WXML/WXS 的转换机制 HBuilderX 提供内置支持,能够将 `.vue` 文件中的模板部分解析并转化为微信小程序所需的 WXML 结构。此过程无需手动干预,但在某些情况下可能会出现问题,例如: - **ES6/JSX 不兼容**:如果静态目录下的 JavaScript 文件包含未处理的 ES6 或 JSX 语法,则可能导致运行错误[^3]。因此需注意避免将此类代码放置于 `/static/js` 下。 - **样式隔离失效**:当 CSS、LESS 或 SCSS 资源位于 `/static` 目录而非推荐的 `/common` 目录时,可能出现样式加载异常的情况。应遵循最佳实践调整资源路径。 #### 3. 常见问题排查指南 针对具体场景提供如下解决方案: ##### (1) 模板标签无法正常渲染 检查是否存在非法 HTML 标签或属性写法。由于微信小程序仅支持特定范围内的 DOM 元素名称及特性定义,超出该集合的内容需要映射替代或者重构逻辑实现。 ##### (2) 数据绑定表达式报错 确保数据模型声明清晰无误,同时验证计算属性是否符合官方文档规定的要求。对于复杂运算操作考虑封装辅助函数来增强可读性和维护便利性。 ```javascript // 示例: 定义全局过滤器用于日期格式化 export default { filters: { formatDate(value){ const date = new Date(parseInt(value)); return `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2,'0')}-${date.getDate().toString().padStart(2,'0')}`; } }, }; ``` ##### (3) 插槽(Slot)传递失败 微信小程序原生并不直接支持 Vue Slot 特性的全部功能集。可以通过自定义组件的方式模拟类似效果,利用 props 参数传入子级内容片段再由父层调用展示出来。 ```html <!-- 子组件 --> <view class="container"> <slot name="header"></slot> </view> <!-- 使用方 --> <template is="childComponent"> <block slot="header">这里是头部区域</block> </template> ``` #### 4. 性能优化建议 随着应用规模增长,关注整体效率变得尤为重要。参考未来趋势方向之一即构建全面的小程序性能监控体系[^2],从而及时发现瓶颈所在采取相应措施改善用户体验质量。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花贝是只猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值