当前位置: 首页 > news >正文

基于UNI-APP实现适配器并保证适配器和实现的调用一致

概述

  1. 前端功能的实现是基于不同的环境采用不同的实现方式的。
  2. 一种是企业微信小程序,需要基于企业微信框架实现。
  3. 一种是移动APP,需要基于uni-app的中底层实现。
  4. 为了调用方便,需要将两种实现统一在一种适配器中,调用者只需要指定环境是什么不需要选择方法。

functionWechat.js

function method(){}
export {method}

functionUniapp.js

function method(){}
export {method}

functionAdapter.js

import store from "./store";let type = store.getters.type;if (!type) {type= "EnterpriseWeChat";
}const weChatApi = require("./functionWechat.js"); // A
const uniAppApi = require("./functionUniapp.js"); // Alet adapter = {};switch (bluetoothType) {case 'EnterpriseWeChat':adapter = weChatBluetoothApi;break;case 'Uni-App':adapter = uniAppBluetoothApi;break;default:
}export const method= adapter.method;

说明

  1. A处,命名导出和默认导出
  • ​​export { method }​ 是命名导出(Named Export),用于导出模块中的特定标识符,比如变量、函数或类。使用该语法时,你可以在导入时通过名称来引用这些标识符,例如 ​import { method } from './module.js’​。
  • ​​export default { method: method }​ 是默认导出(Default Export),用于导出模块中的一个默认值。默认导出可以是任何 JavaScript 数据类型,如对象、函数、类等。使用该语法时,你可以在导入时给默认导出一个任意的名称,例如使用 ​import myModule from './module.js’​ 来引入默认导出的模块。
  • 需要注意的是,一个模块中只能使用一次默认导出,而命名导出可以使用多次。另外,在导入模块时,命名导出需要使用大括号 ​{}​ 包裹要导入的标识符,而默认导出不需要。
  • 这里如果使用import引入,上下两处都需要使用import {method} from './functionWechat.js',这样会出现变量名重复,所以使用require。
  • 如果不是uni-app环境的话,可以尝试使用import {method} as weChat from './functionWechat'.js

相关文章:

  • c语言总是有小问题,是练的少吗?
  • 自制编程语言基于c语言实验记录之五:虚拟机
  • 群辉NAS:ARPL引导黑群晖DSM 7.2详细教程
  • 网工内推 | 上市公司,云平台运维,IP认证优先,13薪
  • 给定n个点或一个凸边形,求其最小外接矩形,可视化
  • NAT协议
  • 【技术类-01】doc转PDF程序卡死的解决方案,
  • css / scss 样式变量
  • Github 生成SSH秘钥及相关问题
  • 软件工程第十周
  • 基于SSM+Vue的随心淘网管理系统
  • 网络编程套接字(3)——协议定制 | 序列化与反序列化
  • 第十八章Swing程序设计总结
  • 技术分享 | app自动化测试(Android)--App 控件定位
  • C# TCP Server服务端多线程监听RFID读卡器客户端上传的读卡数据
  • JavaScript 如何正确处理 Unicode 编码问题!
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • ComponentOne 2017 V2版本正式发布
  • Django 博客开发教程 16 - 统计文章阅读量
  • Git初体验
  • Phpstorm怎样批量删除空行?
  • Puppeteer:浏览器控制器
  • rabbitmq延迟消息示例
  • Vue 动态创建 component
  • 道格拉斯-普克 抽稀算法 附javascript实现
  • 第十八天-企业应用架构模式-基本模式
  • 将 Measurements 和 Units 应用到物理学
  • 聊聊flink的BlobWriter
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 实习面试笔记
  • 微信小程序--------语音识别(前端自己也能玩)
  • 我看到的前端
  • 再次简单明了总结flex布局,一看就懂...
  • 选择阿里云数据库HBase版十大理由
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​DB-Engines 12月数据库排名: PostgreSQL有望获得「2020年度数据库」荣誉?
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • (06)金属布线——为半导体注入生命的连接
  • (27)4.8 习题课
  • (39)STM32——FLASH闪存
  • (C语言)逆序输出字符串
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (一一四)第九章编程练习
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (转) 深度模型优化性能 调参
  • (转)甲方乙方——赵民谈找工作
  • **CI中自动类加载的用法总结
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .net遍历html中全部的中文,ASP.NET中遍历页面的所有button控件