当前位置: 首页 > 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
http://www.lryc.cn/news/226013.html

相关文章:

  • 使用jdk21预览版 --enable-preview
  • js中的跳转都有哪些格式
  • 无重复字符的最长子串
  • C语言--输入10个数字,要求输出其中值最大的元素和该数字是第几个数
  • 如何做好功能测试,提升测试质量和效率?
  • 高德地图添加信息弹窗,信息弹窗是单独的组件
  • Apache Arrow优点
  • 【Linux权限:系统中的数字锁与安全之门】
  • 笔记本电脑的麦克风没有声音
  • 20道简单的投资数学逻辑
  • 【Spring】事务实现原理
  • 人工智能基础_机器学习024_梯度下降进阶_L1正则可视化图形---人工智能工作笔记0064
  • 媒体聚焦丨四维图新旗下杰发科技王璐:设计决定芯片质量
  • 动态规划基础篇(LeetCode每日一题计划)
  • 智慧商业:探索分布式云技术为企业创造商业价值,减少成本,提升生产力的秘诀!
  • Anaconda安装gdal
  • vite基础学习笔记:14.路由跳转(二)携带query参数
  • 立体相机标定
  • mixin混合类的接口实现
  • 前端小技巧: TS实现EventBus自定义事件
  • Django之三板斧的使用,全局配置文件介绍,request对象方法,pycharm链接数据库,Django链接数据库,ORM的增删改查
  • 医学影像系统源码(MRI、CT三维重建)
  • 【uniapp】仿微信通讯录列表实现
  • [MT8766][Android12] 增加应用安装白名单或者黑名单
  • 游戏公司数据分析师必备知识(持续补充中...)
  • intellj 开发软件插件
  • leetCode 493 翻转对
  • “辛巴猫舍”内网渗透、提权、撞库学习笔记
  • 粤嵌实训医疗项目--day06(Vue + SpringBoot)
  • SPSS二元Logistic回归