自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(111)
  • 资源 (4)
  • 收藏
  • 关注

原创 vue3+vite项目报错Transforming async generator functions to the configured target environment (“es2015“)

启动vite项目时报错:Transforming async generator functions to the configured target environment ("es2015") is not supported yetesbuild升级为 ^0.18.2 及以上可解决此问题, 见此链接: 。在vite.config.js中build.target指定为了es2015,会使用esbuild进行转换到浏览器兼容目标。

2024-08-27 15:04:31 741

原创 vue react混合使用的几种方案:

React jsx 仅仅只是 React.createElement(component, props, ...children) 函数的语法糖。所有的jsx最终都会被转换成React.createElement的函数调用。Vue jsx也仅仅是createElement函数(vue2) / h函数(vue3) 的语法糖。

2024-08-03 15:00:00 569

原创 react、vue组件编译区别&template解析原理

1.react组件打包为js后,jsx会被编译为React.createElement.比如:antd的button.js(函数式组件直接return jsx)2.vue2组件打包为js后,template会被解析为 _c函数(即createElement)。比如:vue2 中element-ui的button.js3.vue3组件打包为js后,template会被解析为 h函数(import {h} from vue) h函数底层调用的时createVNode方法。比如: vue3中naive-

2024-08-03 15:00:00 1246

原创 运行中动态加载远程vue文件,解析template、script、style并注册全局组件:

(1).通过http请求获取组件数据,然后使用http-vue-loader插件解析script(解析为各生命周期钩子函数和methods对象),然后动态注册为vueComponent使用。 通过:is 来动态切换组件。必须使用全量vue库,因为需要Vue来解析。因为template已由vue2-sfc-loader解析了,可不用全量vue库。),然后动态注册为vueComponent使用。通过:is 来动态切换组件。(1).通过http请求获取组件数据,然后。后再注册为VueComponent。

2024-08-03 15:00:00 421

原创 数学计算之JS小数精度问题(java/python)

在数学和计算机中三角函数的所有计算都采用弧度制(pi/2),而不是角度制。number 小数计算会出现精度不准确问题,js中number是64 位双精度浮点数。其实,不仅仅只有javascript,还有java、python等都会有类似问题,因为计算机中存的都是二进制(浮点数IEEE754是被普遍使用的标准),小数转二进制时是乘2取整,再用余下的小数部分乘2再取整,如此反复。有的小数转二进制可能会无限循环比如0.1、0.2等,计算机中不可能提供无限个bit位去存储它们,会舍弃一部分二进制位,因而造成了

2024-08-03 14:19:24 886

原创 屏幕比例与分辨率 & 响应式大屏实现的几种方式

1-1.我们直接对body进行scale缩放,会将弹窗也缩放处理。 如果使用element,需要处理el-selece错位问题。下拉框打开后,点击空白位置未自动收缩问题。报错:Uncaught TypeError: this.triggerElm is null解决办法如下:(4).下拉框错位解决: el-select的下拉框默认是添加到body中的。添加属性,不让其放到body中 然后调整下拉框样式即可:

2024-08-03 14:19:16 1228

原创 css样式隔离的几种常用方式

在webpack的项目中是css-loader提供的能力({ loader: 'css-loader', options: { modules: true/*开启css模块*/} })。在CSS Module中可以使用:local(className)来声明一个局部作用域的CSS规则进行样式隔离, 使用:global(className)来声明一个全局作用域的规则,不会进行隔离。css in js主要还是在react中应用的比较多(由于国内用的不多,就不多介绍了,知道有这么个东西即可)。

2024-08-03 14:19:07 989

原创 webpack/vite打包中publicPath(base) router.base axios.baseURL参数作用

这句配置的意思就是,拿到一个地址,先根据地址尝试找对应文件,找不到再试探地址对应的文件夹,再找不到就返回rewrite /index.html的结果(即/lbsmart.public/project/hx.con/index.html文件)。即从/lbsmart.public/project/hx.con/index.html 这个路径加载index.html资源文件并返回。打包后的chunk.js、chunk.css等资源都会加前缀路径(/project/hx.con/chunk.js)

2024-08-03 14:18:56 1120

原创 docker离线环境下部署vue和springboot项目

其实在SSH软件包中,已经包含了一个叫作SFTP(Secure File Transfer Protocol)的安全文件信息传输子系统,SFTP本身没有单独的守护进程,它必须使用sshd守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP并不像一个服务器程序,而更像是一个客户端程序。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。#docker部署的mariadb, 进入容器中。

2024-08-03 14:18:39 360

原创 amis 自定义filter过滤器 和 valid校验规则

/raw默认用于api接口调用时的data属性(数据映射)"data":{"perPage": "${perPage}", "page": "${page}"} 和 responseData属性(返回结果映射) "responseData": { "rows": "${rows}" }。//html默认是用于input组件中label属性( "label": "${ddddd}")、tpl中tpl属性("tpl": "${xxxx}")等html元素属性。//注册amis自定义filter。

2024-07-26 18:10:16 335

原创 工作流 Flowable

的正确执行,就是要解决各任务间依赖的问题,这样DAG结合拓扑排序是解决存在依赖关系的一类问题的利器。如果把依赖关系的问题建模成 DAG, 依赖关系成为 Graph 中的 Directed Edge, 然后通过拓扑排序,不断遍历和剔除无依赖的节点(无前置节点的节点),可以达到快速解决依赖的目的。这个最好理解,就是流程的定义,也就相当于规范,每个 ProcessDefinition 都会有一个 id。用叉形符号填充的菱形表示,从该图中出来的箭头往往有多个,但只有一个满足条件,流程会沿着满足条件的方向流转。

2024-07-26 18:00:43 1697

原创 状态机 XState 使用

一般指的是有限状态机(Finite State Machine,FSM),又可以称为有限状态自动机(Finite State Automation,FSA),简称状态机,它是一个数学模型,表示有限个状态以及在这些状态之间的转移和动作;状态是指由状态机建模的系统的一些有限的、定性的“模式”或“状态”,并不描述与该系统相关的所有(可能是无限的)数据。然而,水的温度可以变化,它的测量是定量的和无限的。延迟的转换被标记为“after”和一个固定的持续时间,以指示在转换到下一个指定的状态之前应该经过多少时间。

2024-07-26 18:00:36 822

原创 Xstate inspect状态图的使用 和 原理

状态图的好处之一是,在将状态图组合在一起的过程中,您可以探索流程中所有可能的状态。这种探索将帮助您避免代码中的错误和错误,因为您更有可能涵盖所有可能发生的情况。因为状态图是可执行的,所以它们既可以表现为图,也可以表现为代码,这样就不太可能在图环境和编码环境之间引入差异或错误解释。

2024-07-26 18:00:00 1959

原创 amis-editor 注册自定义组件

​amis-editor注册自定义组件比如antd按钮组件:方法一:这里'amis-widget'的registerAmisEditorPlugin, registerRendererByType分别注册plugin插件和renderer渲染器。方法二:采用amis-editor的registerEditorPlugin注册plugin插件。 amis的@Renderer 注册renderer渲染器、src/plugins/AntdCalendar.tsx:​

2024-06-30 08:00:00 1417 4

原创 amis中条件组合器condition-builder的使用 和 解析

1.amis中配置一个条件组合器,condition-builder。并根据自己业务需求配置source。这里用了一些自定义filter来进行预处理。//根据不同的数据类型,使用condition-builder中不同的组件类型来展示。3-1.由于nodejs端兼容性问题,不能直接引入amis-core来使用,并移除了部分不兼容的代码,如dom.tsx等。//注册doTree进入到filter中。//doTree filter函数定义。

2024-06-30 00:08:58 403

原创 amis做工具库 - Evalutor的使用 (字符串变量解析)

若返回字符串必须包个冒号: "'aaa'". 这样的纯字符串"node.title",会当做对象解析.若返回字符串必须包个冒号: "'aaa’",不然会当作变量来解析报错。若返回字符串必须用双引号包一层:JSON.parse("\"aaa\"")表达式内可以使用amis的函数,且可获取window、ls、ss、cookie的数据${cookie: 'admin-token'}只解析${},如:${ [] }、${ {key:'value'} }、${node.title}

2024-06-29 23:00:00 601

原创 vue中使用amis(做管理后台渲染器)

1.配置amis页面和web应用菜单的关联关系。2.根据关联关系生成动态路由。最终生成的json如下。3.渲染amis页面。

2024-06-29 22:00:00 943

原创 amis作为工具库来使用 - 封装api调用

/传入用户的axios配置封装一个接口调用promise。常用的有amisLib.clearStoresCache amisLib.evalExpression amisLib.updateEnv amisLib.wrapFetcher(封装fetcher接口调用) , amisLib.ServiceStore(mobx model定义)等。

2024-06-29 22:00:00 1099

原创 amis源码 更新组件数据域的几种方法

/核心实现为:super.setValues(values, replace);//核心实现为:store.setValues(values, undefined, replace);//核心实现为: this.props.store.updateData(values, undefined, replace);//核心实现为:this.props.store?//核心实现为:store.setValues(values);//核心实现为: return this.props.store.data;

2024-06-29 22:00:00 1624

原创 amis 事件动作 和 行为按钮 常用用法

里面提供了event和props对象. props 可以拿到这个组件的其他属性,同时还能调用 amis 中的内部方法,数据在props.data中。event 就是 React 的事件。

2024-06-01 20:00:00 1366 3

原创 Multer 文件上传中间件 和 Busboy表单解析

Multer是基于Busboy解析的文件参数信息,获取fileStream,并通过storage转存的file.stream.pipe(outStream) //file.stream即fileStream。busboy.on('file', function (filedname, file, filename, encoding, mimetype) {//(字段名,文件,文件名,传输编码,mime类型)fileFilter 为一个函数,用来控制什么文件可以上传以及什么文件应该跳过。

2024-06-01 20:00:00 845

原创 MulterError: Field name missing 报错解决

原因:Multer是基于Busboy解析的表单参数信息,经定位发现是解析表单中文本参数时出现了null,故收到MISSION_FIELD_NAME异常。前端查看接口请求参数: 发现多出一个 (空) 参数。解决:前端请求前遍历请求参数,移除空数据即可。

2024-06-01 20:00:00 369

原创 amis源码 onEvent事件动作 和 Action行为按钮解析

actionType指定action作用类型:ajax、link、url、drawer、dialog、confirm、cancel、prev、next、copy、close。runAction方法进行动作的通用预处理并执行不同type的action Class的run方法触发动作。handleAction封装的一些reload、url、dialog、ajax通用动作调用处理,并通过props分发(是对setValue、reload和组件专属动作(comp.doAction())等动作的run方法实现。

2024-05-31 19:32:16 803

原创 amis源码 Api接口调用解析:

1.embed渲染时可以传入用户定义的fetcher(接口调用):2.wrapFetcher 方法源码(封装fetcher):crud接口调用:返回值{status:0, data:{rows:[], count:10}} 会将result.rows | result.items 统一赋值给items作为数据域数据。调用接口获取返回值{status:0, data:{ }},取出payload中的data(json.data)然后设置到数据域中。

2024-05-31 19:31:33 466

原创 amis源码 数据域 数据链解析

进行预处理向下传递了rest.store(即this.props.store父组件store) 和 subProps.data||rest.data, 最终调用了父组件render(即Root.tsx中renderChild方法,最终走渲染)Object.keys只能取到props的key(不检测原型链)。同时会props传递 data={this.store.data},store={this.store}, scope={this.store.data}下去。

2024-05-31 19:31:11 807 6

原创 Amis源码 embed渲染方法解析(json结构渲染原理):

/env会有默认值,默认值与传来的参数进行合并({默认值, ...env})1.核心是通过 {renderAmis(schema, amisProps, amisEnv)}渲染的. (amisEnv里是fetcher,isCancel,tracker等)2.返回一个scoped对象,里面属性(getComponentByName等)是在amis-core/src/Scoped.tsx中调用scopeRef方法赋值的。

2024-05-31 19:30:00 1723

原创 Amis源码构建 sdk版本

建议在linux环境下构建(mac环境下也可以),需要用到sh脚本(amis/build.sh)。amis-master源码下载:https://github.com/baidu/amis。然后在packages/amis/sdk 目录的即amis sdk版本。yarn install //安装workspace所有模块依赖.package.json中需加"private": true。yarn run build //打包。cd到amis根目录。

2024-05-31 19:00:00 424

原创 Amis源码 项目结构解读

Scoped.tsx:主要作用是封装scoped对象(getComponentById、getComponentByName、doAction等属性方法),并将上面封装好的scoped属性全部赋值给examples/embed.tsx中的scoped对象。RootRenderer.tsx: 用在Root.tsx中,创建根组件(一般是page) store 和 初始化数据域(初始数据为传入的amisProp.data),并进行根组件渲染。actions文件夹下是各种类型action动作的实现。

2024-05-31 19:00:00 498

原创 React 之 mobx-state-tree(Redux替代品) 状态管理

使用mobx-react包提供的observer装饰器装饰后的组件能响应observable的变化,并做了诸多的性能优化,尽可能为你的组件加上observer,除非你想要自定义shouldComponentUpdate来控制组件更新时机。笔者不认同这种说法,根据笔者的经验来看,当项目复杂到一定的程度,使用State管理的状态会难受到让你抓狂:某个深层次的组件State只能通过改变上层组件传递的props来进行更新。在MST中,props对应的状态都是可持久化的,也就是可以序列化为标准的JSON数据。

2024-05-31 19:00:00 1355 1

原创 对于多amis embed渲染导致的tracker 无响应问题解决:

原因:是amis对于默认env(fetcher,isCancel,tracker,session)进行了缓存(env保存在store中,store被缓存到stores对象中),只使用第一次缓存的数据,除非进行了clearStoresCache.可以在embed前,执行下清除缓存重新创建。解决方法1: amis.embed({ })时传入env.session,session值不同则每次embed都创建新store.//embed传入新env前 清除下缓存。

2024-05-31 19:00:00 256

原创 amis源码 Formula & 表达式 & visibleOn解析:

` //with 将后面的{}中的语句块中的缺省对象设置为data,可以直接xx获取。evalMode: false, //evalMode: true直接是js运算表达式, false为从模板开始 ${} 里面才算运算表达式.表达式内都当作变量解析。//with 将后面的{}中的语句块中的缺省对象设置为data,可以直接xx获取。

2024-05-31 19:00:00 631

原创 ubuntu22 搭建nginx高可用集群(VIP(keepalived) + 负载均衡)

ps: 如果要使用tcp流转发:需用二进制包安装 make编译时加入stream流的参数。推荐直接安装openresty【默认支持stream等nginx模块,还附带了很多常用的lua库】#nginx服务默认占用80 修改默认端口为81。

2024-05-31 16:02:20 724 1

原创 ubuntu22 部署nacos集群

执行初始化nacos的数据库脚本到mysql (在解压的文件中的conf文件夹中找到mysql-schema.sql)。bash /usr/local/nacos/bin/startup.sh # 使用内置数据源:sh startup.sh -p embedded。#nacos集群 至少需要启动三个nacos (这里我只有俩台虚拟机,故在一台上启动了俩个nacos服务)vim /usr/local/nacos/logs/start.out #启动日志。#在某一台虚拟机中,启动俩个nacos服务。

2024-05-31 15:55:51 324

原创 ubuntu22 部署zookeeper + kafka集群 & 配置开机自启动

ufw disabled #关闭防火墙 或者 放开指定端口这里部署的是双节点:node1:10.3.1.96 ,node2:10.3.1.97#创建topic#Kafka的主题一般需要手动创建(Kafka中有配置可以选择自动创建主题auto.create.topics.enable=true,但一般使用中不会自动创建,都是手动创建)./kafka-topics.sh --create --bootstrap-server 10.3.1.96:9092 --replication-factor

2024-05-31 15:50:04 951

原创 amis 文件上传 & 大文件分块上传

在信息安全领域,经常会用到MD5、SHA1、SHA256算法。这三种算法都属于散列算法,或者叫作哈希算法。它们具有输入任意长度,输出长度固定,以及单向性(无法根据散列值还原出消息)的特点。关于MD5MD5是一个安全散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程是不可逆的。所以要解密MD5没有现成的算法,只能穷举法,把可能出现的明文,用MD5算法散列之后,把得到的散列值和原始的数据形成一个一对一的映射表,通过匹配从映射表中找出破解密码所对应的原始明文。

2024-05-26 12:07:30 1278

原创 amis 联动效果触发的几种方式

更改配置后,提交form表单时,如果有配置提交接口,会先请求提交,之后 amis 会寻找target所配置的目标组件,把form中所提交的数据,发送给该目标组件中,并将该数据合并到目标组件的数据域中,并触发目标组件的刷新操作,对于 CRUD 组件来说,刷新即重新拉取数据接口。有一个表单form组件,还有一个列表组件crud,我们想要把form提交的数据,可以用作crud的查询条件,并请求crud的接口,由于form和crud位于同一层级,因此没法使用数据链的方式进行取值。• crud组件中的api;

2024-05-25 20:30:28 1216

原创 amis中 InputTable Combo InputKV/InputKVS 区别

"name": "_value", // 直接将keyItem作为value的key,不再嵌套一层name了, 要生效此valueItems内只能放input-kvs一个组件, 否则就是将_value作为name了,而不是输入值作为name。combo 多选模式数组[ {}, {} ] Combo 单选模式时对象 { "text":"1", "select":"a" }1.直接配置combo的value属性: "value": { "refX": "1" }"label": "是否是主键"

2024-05-25 19:00:00 741

原创 amis 基础 (数据域 表达式 api接口)

需要注意,只有少数几个容器组件会创建新的数据域,除了最顶层的 Page,还有 CRUD、Dialog、IFrame、Form、Service 等,这几个组件如果平级就获取不到彼此的数据。(配置了data后,dialog数据域会继承data中数据)FormItem类型组件: input-text 、select、 combo、editor等不会创建新的数据域,使用父级数据域。1.首先会向上寻找直到找到form组件,就使用form数据域并将数据设置进去。

2024-05-25 14:35:51 1432

原创 maven打包报错:MalformedInputException: Input length = 1

在IDEA-Setting-Editor-File Encodings中配置编码格式为utf-8。--开启过滤,用指定的参数替换directory下的文件中的参数-->

2024-05-25 12:00:00 1111

原创 Docker 容器间通讯

1、虚拟ip/访问同一网络2、link容器别名访问(ps: 官方文档中已经不推荐使用)3、同一自定义网络下可通过容器名访问4.docker compose部署可通过service服务名访问(单机)5.docker swarm 可通过service服务名访问(多主机集群 跨主机通讯)

2024-05-24 20:00:00 1905

linux suse镜像下载

suse12sp3 & suse15

2021-03-26

ambari安装包下载(centOS7、suse12版本)

ambari安装包下载(centOS7、suse12版本)

2021-03-26

3dmax安装包(内含相应的安装教程)

3dmax 2019

2021-03-26

matlab完全版安装包(包括windows、linux、mac版本)

matlabR2016b版本

2021-03-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除