微信小程序 封装全局过滤器

微信小程序 封装全局过滤器

参考官方文档 :https://developers.weixin.qq.com/miniprogram/dev/reference/wxs/01wxs-module.html

作用:往往后端会返回一个数字,比如1,我们根据数字1对应后端数据枚举中的value值在页面中渲染出desc的值。有人会说,直接if else 判断等于1就显示轮播图片,等于2就显示商品卡片等。这样写死到时候后端ModuleTypeEnum里面的数据变化 ,页面就得改,不好维护。所以过滤器是最好的办法

后端给的枚举数据

 "ModuleTypeEnum": [
	      {
	        "value": 2,
	        "desc": "轮播图片"
	      },
	      {
	        "value": 3,
	        "desc": "商品卡片"
	      },
	      {
	        "value": 4,
	        "desc": "导航"
	      },
	      {
	        "value": 5,
	        "desc": "图片卡片"
	      },
	      {
	        "value": 6,
	        "desc": "文本标语"
	      }
 ]

过滤器的使用:

微信小程序  封装全局过滤器

filter.wxs:

  // 封装过滤器
  /* 注: <1> <wxs> 模块只能在定义模块的 WXML 文件中被访问到 
          <2> <wxs> 模块不支持es6语法
  */ 
 var filterData = function(value,array){
    for(var i = 0;i<array.length;i++){
      if(value = array[i].id){
        return array[i].item
      }
    }
  }
  module.exports = {
    filterData:filterData
  }

所需页面中的.wxml:

<!-- 引入 -->
	<wxs src='../../utils/filter.wxs' module='filter'/>
	
<!-- 使用 -->
	<view>{{filter.filterData(value,array)}}</view>

所需页面中的.js:

Page({
  data:{
    value:1,
    array:[
        {id:1,item:'第一'},
        {id:2,item:'第二'},
        {id:3,item:'第三'},
    ],
  }
 })
上一篇:meituan交互式系统项目浅析(1) session 模块


下一篇:程超:手把手教你动手扩展分布式调用链