小程序中switch case如何优化
遇见的问题
最近在开发小程序,代码中需要实现很多业务,难以避免就有很多的判断,根据不同策略运行不同函数的情况存在。获取到字符串,执行对应的函数。
在PHP中,你可以这样子方便的执行
$con = 'hello';
$con(); // hello()$con = 'king';
$con(); // king()
无奈、小程序中,偏偏不支持一个邪恶的函数 eval
,但是说来eval is evil
也不无道理。效率既不好又不安全,果断放弃了。
怎么办呢
一、 If Else
if(con) {// do something
}else if(con){// do something
}
......
else{// do something
}
过多的if else
也不好看
二、 switch case
换做switch case
会好点,但还是无限的复制代码,很难受:
switch(mf.queue[key]) {case 'login':// do somethingbreak;case 'chat':// do somethingbreak;......default:// do something}
如果是简单的字符串转化,也可以考虑使用枚举等。
解决方法
// 业务逻辑
const funA = function(arg){// do something
}
const funB = function(arg){// do something
}......// Map
const actions = new Map([['funA',funA],['funB',funB]......
])
const choose = function(arg){var fun = 'funA'actions.get(fun)(arg) // funA(arg)actions.get('funB')(arg) // funB(arg)
}// 暴露方法
module.exports = {choose:choose,
}
总结
这样作,会比无限复制的if else 更加机制一点,也算是替代了eval
这个方法,记录一下解决方案,高手多多指教。
小程序中switch case如何优化相关推荐
- 小程序之switch...case...break
猜猜这段小程序会打印出什么结果? public class Test {public static void main(String[] args) {int i = 2;decide(i);}pub ...
- 微信小程序--修改switch组件的大小size
修改switch组件的大小 小程序中switch组件的大小往往和实际项目中的大小有些出入,但是发现文档中并没有修改大小的方法,但是可以根据自己的实际情况进行颜色设置. 直接上代码: <switc ...
- 初学前端在小程序中使用for循环的一个优化案例
作为前端的小白,已经学习了个把月了,for循环在微信小程序中的使用在常见不过了:在获取某个官方API数据后,如何将获取的若干条数据分别不重复的放入到不同的循环当中呢?让我们看个小小的例子去体会一波. ...
- 小程序中所有组件学习
视图容器 view 视图容器 属性名 类型 默认值 说明 最低版本 hover-class String none 指定按下去的样式类.当 hover-class="none" 时 ...
- 微信小程序中使用nfc
在小程序中调用nfc功能,实现小程序刷卡 直接上代码: 先在小程序的根目录或是pages目录下创建一个nfc文件夹 在nfc文件中创建一个nfc.js的文件 代码: // 获取nfc实例 functi ...
- java break在switch_java中switch case语句需要加入break的原因解析
java中switch case语句需要加入break的原因解析 java 中使用switch case语句需要加入break 做了具体的实例分析,及编译源码,在源码中分析应该如何使用,大家可以参考下 ...
- 快手小店电脑版_微信PC版更新!支持在小程序中使用微信支付 | 一周资讯
小程序1. 微信PC版更新,支持在小程序中使用微信支付.12月19日,微信PC端推出内测版2.7.2.73,新版本支持以下新功能:新增看一看精选内容,新的订阅号浏览体验,支持在小程序中使用微信支付.( ...
- python中case的用法_python中Switch/Case实现的示例代码
python 的 python中Switch/Case实现的示例代码 学习Python过程中,发现没有switch-case,过去写C习惯用Switch/Case语句,官方文档说通过if-elif实现 ...
- 记一次小程序富文本的小小优化
背景 记一次针对线上微信电竞小程序赛事富文本资讯模块进行优化. 原有的资讯采用管理端富文本编辑保存 HTML 文本,由于小程序提供的 rich-text 组件 无法支持 video 标签等局限性,在小 ...
- 在微信小程序中绘制图表(part2)
本期大纲 1.确定纵坐标的范围并绘制 2.根据真实数据绘制折线 相关阅读: 在微信小程序中绘制图表(part1) 在微信小程序中绘制图表(part3) 关注我的 github 项目 查看完整代码. 确 ...
最新文章
- linux rcs文件中的ip,linux学习笔记之diff和patch命令
- Question: Database Of Tumor Suppressors And/Or Oncogenes
- 织梦cms响应式影视传媒模板
- 渗透实例:The Game Of Bob_1.0.1
- 在PHP中使用协程实现多任务调度
- 系统学习深度学习(七)--主流深度学习开源框架对比
- smarty中的在模板页中应用js css img等文件时,地址是相对与模板页对应的php文件
- 关于登录tomcat8一直登录不进去问题
- 机房巡检知识点(一)
- ss php 搭建,sspanel 前端搭建教程
- 电子计算机表格,excel电子表格(计算机).ppt
- org.hibernate.QueryParameterException: could not locate named
- java定义一个eat方法_Java继承概念详细解读
- Ironic的安装那些事儿
- 数据库编程——简单教程
- @Value(“${}“)
- centos安装python3.8.1_centos6.6下安装python3.8.1后报错?
- Electron 学习
- UE4-(蓝图)第一百课 用.csv格式文件作为配置文件并获取、使用数据
- 领:西安交通大学MBA提前面试真题
热门文章
- SAP案例教程CO成本会计后台配置
- 股市投资必修课十九---DCF三要素经营存续期、现金创造力、经营周期定位
- python 经典图书排行榜_书榜 | 计算机书籍(3.30-4.5)销售排行榜
- Linux下rpm软件包rpm命令的安装及卸载
- sai笔记4-加高光/图层切换颜色
- 基于Spring-statemachine的有限状态机(FSM)的介绍及示例
- “好工作”的最关键指标:场景足够复杂、数据量足够大、杠杆率足够高
- 服务器硬盘开机吱吱响,开机时硬盘吱吱响的原因
- 20220520数据结构绿皮书读书笔记
- Python入门:数据结构之字典(dict)(1)