前端vue 动态加载ts文件,动态调用ts内的方法

业务场景: 在某个业务场景中, 我们需要在数据库配置ts文件路径,和需要调用的函数名称, 前端需要再指定的场景下,触发对应的函数, 并执行处理逻辑,返回结果.

实现: 这是一个数据库配置生成的动态表单 + 动态校验的例子, 需要引用动态的函数校验

  1. 任意一个js文件,
    common1.ts
const funcation1 = ({value, formParam}) =>{console.log('我进来了1',value,formParam);// todo: 特殊逻辑处理return '我出去了';
}
const funcation2 = ({value, formParam}) =>{console.log('我进来了2',value,formParam);// todo: 特殊逻辑处理return '我出去了';
}export {
funcation1,
funcation2
}
  1. 在需要调用的位置, 加入如下代码.
    main.vue
<script>/**动态调用函数*/const loadAndCallFunction = async(modelPath, funcionName, param) =>{try{// 动态导入模块const module = await import(`./${modelPath}`);// 检查模块是否包含指定的函数if(typeof module[funcionName] === 'function') {// 调用函数并返回结果return module[funcionName](param);}throw new Error(`Function ${funcionName} not found In module ${modelPath}`)}catch(error) {throw error}}const rules = reactive<any>({});// 根据后端配置,动态渲染表单rulesconst initRule = (formItems) =>{formItems.map((item)=>{rules[item.field] =  item.rule !== undefined ? item.rule : [{required:false}];if(item.validator !== undefined) {const validator = {validator: async (value, cb)=>{//const result:any = await loadAndCallFunction(item.path, item.function, {value, formValue})const result:any = await loadAndCallFunction('validator/common/common1', 'function1', {value, formValue});if(result === '' || result === undefined){cb();} else {cb(result);}}}	}})}
</script>

最终的运行效果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/14623.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大模型日报|今日必读的 13 篇大模型论文

大家好&#xff0c;今日必读的大模型论文来啦&#xff01; 1.MIT新研究&#xff1a;并非所有语言模型特征都是线性的 最近的研究提出了线性表征假说&#xff1a;语言模型通过操作激活空间中概念&#xff08;“特征”&#xff09;的一维表征来执行计算。与此相反&#xff0c;来…

CHI dataless 传输——CHI(4)

上篇介绍了read的操作类型&#xff0c;本篇我们来介绍一下dataless 目录 一、dataless操作概览 二、Non-CMO (Non-Cache Maintenance Operation) 1、CleanUnique 2、StashOnce and StashOnceSep 3、Evict 三、CMO (Cache Maintenance Operation) 一、dataless操作概览 名…

C# 中的 Dictionary<TKey, TValue> 类

Dictionary<TKey, TValue> 是 C# 中的一个泛型集合类,它提供了一种键值对的存储结构,可以用来存储和快速访问数据。它的主要特点如下: 键值对结构: Dictionary 中的每个元素都是一个键值对,键必须是唯一的,值可以重复。 快速访问: Dictionary 基于哈希表实现,可以提供 O…

大白话聊聊MySQL查询之五子句(知识简单但重要)

前言&#xff1a; 在日常开发中&#xff0c;查询数据占很大的比重&#xff0c;在使用 MySQL 数据库进行查询时&#xff0c;我们经常需要通过各种条件和规则来筛选和排序数据。要实现这些功能&#xff0c;就不得不使用以下这些子句&#xff1a;WHERE、ORDER BY、GROUP BY、HAVI…

物联网层次架构设计

物联网可以分为三个层次&#xff0c;底层是用来感知数据的感知层&#xff0c;即利用传感器、二维码、RFID等设备随时随地获取物体的信息。第二层是数据传输处理的网络层&#xff0c;即通过各种传感网络与互联网的融合&#xff0c;将对象当前的信息实时准确地传递出去。第三层则…

忍の摸头之术游戏娱乐源码

本资源提供给大家学习及参考研究借鉴美工之用&#xff0c;请勿用于商业和非法用途&#xff0c;无任何技术支持&#xff01; 忍の摸头之术游戏娱乐源码&#xff0c;抖音上面非常火的摸头杀画面,看得我眼花缭乱,源码拿去玩吧&#xff1b; 目录说明 忍の摸头之术&#xff1a;域…

轻松同步:将照片从三星手机传输到iPad的简便方法

概括 想要在新 iPad 上查看三星照片吗&#xff1f;但是&#xff0c;如果您不知道如何将照片从三星手机传输到 iPad&#xff0c;则无法在 iPad 上查看图片。为此&#xff0c;本文分享了 7 个有用的方法&#xff0c;以便您可以使用它们在不同操作系统之间轻松发送照片。现在&…

EfficientSAM分割对象后求其中图像中的高

1 分割对象 EfficientSAM https://github.com/yformer/EfficientSAM 2 计算在图像中最高点即y值最小点 import os import cv2def read_images(folder_path):image_files [f for f in os.listdir(folder_path) iff.endswith(".jpg") or f.endswith(".png&quo…

c语言之运算符练习题

C语言中的运算符是执行特定操作的符号&#xff0c;它们是编程中不可或缺的部分。C语言提供了多种类型的运算符&#xff0c;包括算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符等。以下是一些常见的C语言运算符练习题&#xff0c;可以帮助你熟悉和练习这些运算符的使…

虚拟化技术[1]之服务器虚拟化

文章目录 虚拟化技术简介数据中心虚拟化 服务器虚拟化服务器虚拟化层次寄居虚拟化裸机虚拟化VMM无法直接捕获特权指令解决方案 服务器虚拟化底层实现CPU虚拟化内存虚拟化I/O设备虚拟化 虚拟机迁移虚拟机动态迁移迁移内容&#xff1a;内存迁移迁移内容&#xff1a;网络资源迁移迁…

小短片创作-组装场景(一)

1、项目基础设置 通过第三人称模板&#xff0c;创建1个项目 1.自动曝光&#xff1a;关闭&#xff0c;因为要做专业的小短片&#xff0c;曝光需要手动控制。 2.扩展自动曝光中的默认亮度范围&#xff1a;启用 3.全局光照系统&#xff1a;选择屏幕空间光照&#xff08;SSGI&am…

Transformer详解常见面试问题

文章目录 1. 各模块解决1.1 输入部分1.2 多头注意力&#xff08;作者使用8个头&#xff09;1.3 残差和LayerNorm1.4 Decoder部分 2.Transformer经典问题2.1 tranformer为何使用多头注意力机制&#xff1f;2.2 Transformer相比CNN的优缺点2.3 Encoder和decoder的区别&#xff1f…

Spring中RestTemplate用法

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 RestTemplate 是从…

自编译frida得一些记录

frida编译 这个过程坑肯定很多 但是只要大方向对得&#xff0c;解决掉每个小错误达到目的就ok得 # 就是想自己把frida代码done下来改一改 然后看看git clone gitgithub.com:frida/frida.git git fetch git checkout 14.1.3# 下载node包管理工具 apt install nvm nvm install …

Web Speech API(1)—— SpeechRecognition

Web Speech API 使你能够将语音数据合并到 Web 应用程序中。Web Speech API 有两个部分&#xff1a;SpeechSynthesis 语音合成&#xff08;文本到语音 TTS&#xff09;和 SpeechRecognition 语音识别&#xff08;异步语音识别&#xff09;。 SpeechRecognition 语音识别通过 S…

axios案例应用

1、Spring概述 Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架&#xff0c;以 IoC(Inverse Of Control: 反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核&#xff0c;提供了展现层 Spring MVC 和持久层。Spring JDBC 以及业务层事务管理等众多…

day16|二叉树的属性

相关题目 ● 104.二叉树的最大深度 559.n叉树的最大深度 ● 111.二叉树的最小深度 ● 222.完全二叉树的节点个数 二叉树的深度与高度 如图&#xff0c; 二叉树的深度表示&#xff1a;任意一个叶子节点到根节点的距离&#xff0c;是从上往下计数的&#xff0c;因此使用前序遍历…

2024年甘肃特岗教师招聘报名流程,速速查收哦!

2024年甘肃特岗教师招聘报名流程&#xff0c;速速查收哦&#xff01;

python-鸡兔同笼问题:已知鸡和兔的总头数与总脚数。求笼中鸡和兔各几只?

【问题描述】典型的鸡兔同笼问题。 【输入形式】输入总头数和总脚数两个实数&#xff1a;h&#xff0c;f 【输出形式】笼中鸡和兔的个数&#xff1a;x&#xff0c;y 【样例输入】16 40 【样例输出】鸡12只&#xff0c;兔4只 【样例说明】输入输出必须保证格式正确。…

AI大模型探索之路-训练篇25:ChatGLM3微调实战-基于LLaMA-Factory微调改造企业级知识库

系列篇章&#x1f4a5; AI大模型探索之路-训练篇1&#xff1a;大语言模型微调基础认知 AI大模型探索之路-训练篇2&#xff1a;大语言模型预训练基础认知 AI大模型探索之路-训练篇3&#xff1a;大语言模型全景解读 AI大模型探索之路-训练篇4&#xff1a;大语言模型训练数据集概…