通过开发者工具快速创建了一个 QuickStart 项目时,会生成一个utils/util.js文件。

util.js

const formatTime = date => {const year = date.getFullYear()const month = date.getMonth() + 1const day = date.getDate()const hour = date.getHours()const minute = date.getMinutes()const second = date.getSeconds()return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')
}const formatNumber = n => {n = n.toString()return n[1] ? n : '0' + n
}const formatDate = (time)=>{ // 每日5:30更新日期查询let now = new Date()let year = now.getFullYear(); //得到年份let month = now.getMonth();//得到月份let date = now.getDate();//得到日期month = month + 1if (month < 10) month = "0" + monthif (date < 10) date = "0" + datesearchDate = year + '-'+ month + '-'+ datereturn searchDate
}const formatEnMonth = (month) => {month = month.toString()let en_month="Jan"let month_arr = ['01','02','03','04','05','06','07','08','09','10','11','12']  let en_mon_arr = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Spt","Oct","Nov","Dec"];  //英文月份for(var i = 0;i < month_arr.length;i ++){      //循环匹配if(month == month_arr[i]){en_month= en_mon_arr[i]}}return en_month
}
module.exports = {formatTime: formatTime,formatEnMonth: formatEnMonth,formatDate: formatDate,
}

我们可以将一些公共的代码抽离成为一个单独的 js (util.js)文件,作为一个模块,通过 module.exports 或者 exports 对外暴露。
在使用过程中,会发现它里面的方法只能在js里调用,没法直接在wxml中使用,这时候可以用 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 设备上二者运行效率无差异。

wxs的使用方法:

1.在utils文件夹中新建一个文件,比如:utils.wxs。

// 作用于wxml中的函数,不支持ES6的语法
var formatAir = function(data){switch (data) {case '优':return 'level1'case '良':return 'level2'case '轻度污染':return 'level3'case '中度污染':return 'level4'case '重度污染':return 'level5'case '严重污染':return 'level6'default:return '-'}
}module.exports = {formatAir: formatAir,
}
  1. wxml页面中:
<wxs src="../../utils/utils.wxs" module ="utils"/>
<view class="aqiDetails"><view class="aqiText">空气质量指数</view><view class="aqi">{{nowAir.aqi}}</view><view class="category"><!-- 根据空气质量指数类型添加样式 --><text class="nowAirTxt {{utils.formatAir(nowAir.category)}}">{{nowAir.category}}</text></view>
</view>

.wxss

/* 工具类 */
.level1{background-color: #309434;
}
.level2{background-color: #fbc011;
}
.level3{background-color: #ff9800;
}
.level4{background-color: #ff4032d1;
}
.level5{background-color: #9c27b0;
}
.level6{background-color: #a73208;
}

微信小程序-(js和wxml中)utils公共方法使用相关推荐

  1. 微信小程序怎么在wxml中插入多个图片_兰州小程序开发流程费用推荐品牌_便企网...

    兰州小程序开发流程费用推荐品牌,有人说既然开发文档这么详细那直接跟着开发文档来学习就可以轻松入门,你有这份自信是非常好的,也希望你有很强的学习能力,但对于很多的普通人新手来说(当然也包括我),做作品的 ...

  2. 微信小程序怎么在wxml中插入多个图片_白云工商带你10分钟入门微信小程序开发...

    10分钟入门微信小程序开发 程序开发难吗? No!来白云工商带你10分钟入门微信小程序开发! 英语不好能学好程序开发吗? 当然能,程序开发常见的也就那几个单词,只要热爱,非常简单! 欣赏 首先,来欣赏 ...

  3. 微信小程序怎么在wxml中插入多个图片_闲聊微信小程序开发框架(二)

    在前面一篇文章中我们介绍了小程序开发框架的几个组成部分,今天就让我们了解一下小程序开发框架的底层架构是如何实现的. 小程序的开发框架成为MINA框架,通过上面的框架图我们可以看到三个部分.首先是Vie ...

  4. 微信小程序怎么在wxml中插入多个图片_22. 教你零基础搭建小程序:小程序的常见组件(2)- image

    大家好~今天讲小程序的常见组件-- image 图片标签 小程序中的图片标签相当于 web 中的图片标签 ,但也存在着不同之处. 例如:小程序在后期要打包上线时,对图片的大小是有要求的,图片要< ...

  5. 微信小程序js过度动画

    微信小程序js过度动画 如有错误还请大神指教.如果觉得不错可以关注我了解更多. 一,我们先来看看效果吧. 二,我们用的是js的逐帧动画,css也可有相同的效果,我们这里用js // pages/arr ...

  6. 微信小程序资料集(中)

    **12月1日小程序Demo集合** [微信小程序Demo:金融理财计算器](简书) [微信小程序Demo:支付宝+微信二维码收款小程序](简书) [上滑导航吸顶效果](简书) [微信小程序Demo: ...

  7. 微信会员卡html修改样式模板,微信小程序 JS动态修改样式的实现代码

    微信小程序这个坑啊,js动态修改样式,我们并不能用js或者jq 轻轻松松一行代码搞定.或者用removeClass addClass 来修改样式. 以下是一种动态修改样式的方法,原理是绑定数据,然后动 ...

  8. 微信小程序JS字符串操作方法汇总

    微信小程序JS字符串操作方法汇总 JS对字符串进行切割截取 1.函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str="jpg|bmp|gif|ico| ...

  9. 微信小程序JS字符串操作方法汇总,包含切割截取split,合并字符串join,连接字符串concat,返回指定字符串charAt,提取字符串substring等

    微信小程序JS字符串操作方法汇总 JS对字符串进行切割截取 1.函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str="jpg|bmp|gif|ico| ...

  10. 微信小程序:计算wxml里盒子的宽、高.....

    微信小程序:计算wxml里盒子的宽.高等信息 由于某些标签需要动态设置页面的高度,此时需要计算每个盒子的高度(由于盒子是一些东西撑开的,无法直接得到高度),根据盒子数量及边距距离设置页面高度 得到的数 ...

最新文章

  1. 梦断代码阅读笔记之一
  2. python的第三方库-Python第三方库安装和卸载
  3. php面向对象调用方法,在面向对象的php中调用方法
  4. WinForm中Partial部分类的使用
  5. c# groupbox大小_【已解决】C#中使得控件随着WinForm窗体的大小改变而自动变化
  6. DDD理论学习系列(9)-- 领域事件
  7. ASP.NET 页面生存周期概览
  8. Regsvr32.exe 的用法
  9. 操作系统文件系统实验_现代电脑操作系统原理课程,案例:Apple 操作系统技术演进...
  10. 【干货】神策数据朱德康:用户中台建设实践解析(附PPT下载链接)
  11. DataGridView获得所有选中行的某列的值
  12. linux ghost漏洞,危险!GHOST(幽灵)漏洞曝光
  13. 计算机类软件工程与测绘类遥感专业的薪水,2018遥感科学与技术专业就业前景和就业方向分析...
  14. truelicense使用手册
  15. 【SSLGZ 2812】2017年10月30日提高组T2 凤凰院真凶
  16. C语言图形化推箱子完整代码
  17. python使用百度OCR接口识别图片文字
  18. Richard Hamming ``You and Your Research''
  19. 【已解决】Mac OS 配置host域名映射不生效
  20. 思岚科技—SLAMTEC邀你参加美国CES展会

热门文章

  1. Python FastAPI 框架 操作Mysql数据库 增删改查
  2. pdf怎么转换成excel呢?三种方法快速转换
  3. Linux内存管理(.text .data .bss)
  4. 真的是会者不难,难者不会啊!
  5. Codeforces841B Godsend
  6. ROS+python控制小乌龟走方形的实现rospy
  7. 1.Web基础与HTTP协议
  8. 面向面试的Java后端必会知识点概述及面经
  9. 中国大学MOOC 玩转AutoCAD 熟悉AutoCAD的人机交互方式
  10. BUUCTF Unravel