热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

微信小順序WXS不相識一下?騷騷的完成各大前端框架中的filter

媒介近來有在做小順序開闢,在開闢的過程當中遇到一點小題目,形貌一下先。本人在職的公司關於背景獵取的json數據須要做過濾轉義的許多,差別的狀況碼會對應差別的筆墨,然則在微信小順序中

媒介

近來有在做小順序開闢,在開闢的過程當中遇到一點小題目,形貌一下先。

本人在職的公司關於背景獵取的 json 數據須要做過濾轉義的許多,差別的狀況碼會對應差別的筆墨,然則在微信小順序中又沒有相似 vue 中的 | 要領舉行疾速的過濾,看了前人的代碼大都是用數據遍歷洗數據來完成的,說實話,很貧苦,縱然提取了大眾要領那也貧苦,總之要洗數據就貧苦(對,我就是這麼懶,懶人推進天下生長 =3=)

在翻看小順序的文檔的時刻,恰好看到了 WXS 的引見 官方文檔 一拍腦門,這不就成了么?

正文

WXS 為何物

在上代碼之前先簡樸的引見一下 WXS 是什麼,以及和 Javascript 有什麼區別,雖然官方文檔中都有,但我以為博客的存在意義就是只管削減看官們的頁面跳轉,能夠在一個頁面申明的題目就不要再跳轉,外鏈應當作為課後拓展的手腕。

  • WXS 引見

    • 是小順序出的一套劇本語言,用於 wxml 模板文件中,在模板文件中能夠完成頁面的構造。
    • 不依賴於運轉時的基本庫劇本,能夠在所有版本的小順序中運轉。
    • WXS 中不能挪用 Javascript 中定義的函數或許變量,也不能挪用小順序供應的 API,他的運轉環境和 Javascript 是斷絕的。
    • 小順序的前提襯着和輪迴襯着對 WXS 是無效的,就是說假如 WXS 代碼包裹在未襯着的代碼中,只需襯着的 wxml 部份挪用了此模塊,此段 WXS 代碼依舊會被加載。
    • 因為運轉環境的差別,在 ios 裝備上小順序的 WXS 會比 Javascript 快 2~20 倍,在 android 裝備上運轉效力無異。
    • 模塊想要暴露本身的私有變量和要領,只能經由過程 module.exports 完成。
    • 若在模塊中想要援用其他模塊,只能經由過程 require 完成。
    • 只能運用 var 來定義變量,表現形式和 Javascript 一樣,會有變量提拔。
    • WXS 模塊只能在定義模塊的 wxml 文件中被訪問到,運用 時,WXS 模塊不會被引入到對應的 wxml 文件中。
    • 不能運用 new Date() 應當運用 getDate()

準確的運用 WXS

上代碼

起首,新建一個 config.wxs 文件,用於存儲狀況碼對應轉義后的筆墨。

var orderType = {
"-1": "type one",
"0": "type two",
"1": "type three"
};
module.exports.orderType = orderType;

能夠看到我們對外暴露變量的時刻用的是 module.exports,在 wxs 文件中只能運用該要領 官方文檔 一樣,在引入其他模塊的時刻,只能運用 require

接着,建立一個 index.wxs 文件,用於對外暴露一些過濾的要領。

var cOnfig= require("./config.wxs");
function _filterOrderType(value) {
return config.orderType[value.toString()] || "order type undefined"
}
// 時候戳轉換成 yyyy-MM-dd HH:mm:ss
function _filterTimestamp(value) {
// 有些特別 不能運用 new Date()
var time = getDate(value);
var year = time.getFullYear();
var mOnth= time.getMonth() + 1;
var date = time.getDate() <10;
var hour = time.getHours() <10;
var minute = time.getMinutes() <10;
var secOnd= time.getSeconds() <10;
mOnth= month <10 ? "0" + month : month;
date = date <10 ? "0" + date : date;
hour = hour <10 ? "0" + hour : hour;
minute = minute <10 ? "0" + minute : minute;
secOnd= second <10 ? "0" + second : second;
return year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
}
module.exports._filterOrderType = _filterOrderType;
module.exports._filterTimestamp = _filterTimestamp;

末了在我們須要舉行過濾處置懲罰的 wxml 頁面上引入這個模塊,運用即可。


{{filter._filterOrderType(item.type)}}
{{filter._filterTimestamp(item.time)}}

這裏須要注重一下,在 wxml 頁面上運用模塊的時刻,須要用一個 module="filter" 或許其他的定名來包裹。

結語

WXSJavascript 雖然相似,然則照樣有一些差別的處所,假如在 debug 的時刻發明報錯了,能夠在底下復興或許直接私信我,雖然不能秒回,然則多一個人多一條思緒,或許我能給您供應一些別的思緒,或許您的題目會給我帶來一些新的思索,我恰是這麼期待着。

本文能夠隨便轉載,只需附上原文地點即可。

假如您以為我的博文對您有所協助,請不吝讚揚,點贊也是讓我動力滿滿的手腕 =3=。


推荐阅读
  • 微信小程序地图实现展示线路的方法
    这篇文章将为大家详细讲解有关微信小程序地图实现展示线路的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所 ... [详细]
  • 微信小程序中如何实现轮播图
    这篇文章主要介绍了微信小程序中如何实现轮播图,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带 ... [详细]
  • 微信小程序新手教程wx.request(object) API
    微信小程序新手教程wx.request(object)API,本篇默认已经成功安装微信小程序工具,来和小编一起看看吧wx.request(object)API这里通过干活集中营的A ... [详细]
  • 微信小程序实现星级评分与展示
    这篇文章主要为大家详细介绍了微信小程序实现星级评分与展示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的 ... [详细]
  • 微信小程序学习笔记-3-问题
    一些在开发微信小程序中常见的问题页面渲染  微信小程序中规定所有页面上渲染出来的数据,包括文字和图片皆包含在在每个页面文件夹中的js文件中的page这个内置函数的参数data中, ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • 面试经验分享:华为面试四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试
    最近有朋友去华为面试,面试经历包括四轮电话面试、一轮笔试、一轮主管视频面试、一轮hr视频面试。80%的人都在第一轮电话面试中失败,因为缺乏基础知识。面试问题涉及 ... [详细]
  • 微信小程序开发如何实现地图功能
    这篇文章主要讲解了“微信小程序开发如何实现地图功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研 ... [详细]
  • 知晓推送正式上线!送你 13 亿条模板消息
    「知晓推送」能帮助小程序运营人员有效解决粉丝转化、消息推送、数据分析等多个层面的麻烦事,让小程序推广难、留存差的问题从此成为过去式。在服务上线的这个重要的日子里,贴心的小云专门向” ... [详细]
  • 小程序中如何实现弹出菜单功能
    这篇文章给大家分享的是有关小程序中如何实现弹出菜单功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。需求点击 ... [详细]
  • 微信小程序如何实现列表的横向滑动
    小编这次要给大家分享的是微信小程序如何实现列表的横向滑动,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所 ... [详细]
author-avatar
我的小角落5
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有