- 博客(36)
- 资源 (2)
- 问答 (1)
- 收藏
- 关注
原创 探索低代码的新形态(D2C、ChatGPT)
突破前后端的边界,打通全链路,是基于低代码逻辑配置的扩展,解放后端开发人员的生产力;借鉴Virtual DOM的思想,实现不同平台的渲染器,低代码不止是局限于web,而是能覆盖不同平台的各种场景;D2C优化UI层面的配置过程;P2C优化交互逻辑层面的配置过程。以构建全链路的跨平台应用为目标,通过AI处理配置过程中的大部分工作,再由用户进行少量配置,甚至不做任何配置。
2023-06-06 17:22:33
858
原创 React组件库实践:React + Typescript + Less + Rollup + Storybook
原先在做低代码平台的时候,刚好有搭载React组件库的需求,所以就搞了一套通用的React组件库模版。目前通过这套模板也搭建过好几个组件库。
2023-04-03 17:21:05
725
1
原创 低代码平台实践系列(一):逻辑配置概述
作为前端开发人员,大家可能已经很熟悉现有的前端框架和工具,但是随着数字化转型的推进,越来越多的企业需要更快速、更高效地构建自己的应用程序。低代码平台可以成为我们前端开发人员解放生产力的神器。低代码平台为用户提供了可视化的界面、拖拽式的组件和自动生成的代码等功能,让用户能够更快速地创建应用程序,而无需编写大量的手动代码。
2023-03-15 17:19:18
1354
原创 配置可视化-基于form-render的无代码配置服务(一)
有些业务场景需要产品或运营去配置JSON数据提供给开发去使用(后面有实际业务场景的说明),原有的业务流程,非开发人员(后面直接以产品指代)把数据交给开发,再由开发去更新JSON数据。对于产品来说,直接接触JSON数据并不友好,一是搞不懂JSON;二是容易出错,影响现网数据。
2023-02-14 17:33:25
749
翻译 【译】从500ms到1.7ms的React性能优化经历
我相信每个开发者在开发的某个阶段,都有可能需要进行性能优化。关于如何优化react中的性能,已经有很多资源和文章,这篇文章也不例外。这里分享一个我实践过的从0.5s到1.7ms的性能优化的实践和结论。......
2022-08-18 17:02:57
411
原创 JSON Schema&表单UI快速生成解析
一、JSON Schema JSON(JavaScript Object Notation)是一种轻量&常见的数据交换格式,基本的数据的结构就是key-value,具有易于生成和解析的优点,通过JSON可以灵活地表达程序所需要的数据结构。 但JSON本身并没有特定的规范(本身结构也不支持注释),所以对于数据本身的描述是缺失的,比如说开发人员或者程序,就无法判断下面这份数据里面的age为string是否是符合预期的类型。{ "name": "John Doe", "mobile":
2022-04-08 15:51:11
4567
原创 图片格式发展与Netflix公布的下一代图片压缩格式AVIF——从700kb到20kb
一、图片格式的发展二、AVIF介绍从图片发展过程来看,AVIF(AV1 Image File Format,AV1图像文件格式)是目前最值得关注的新型图片格式。AVIF是业界最新的开源视频编码格式AV1的关键帧衍生而来的一种新的图像格式。AVIF由包括Google、Apple、Netflix在内的开放媒体联盟(Alliance for Open Media,简称AOMedia)共同开发,并于2020年上半年由Netflix公布,作为JPEG的替代方案在Netflix的实际项目中落地。三、使用
2020-12-18 21:37:19
1685
1
原创 关于koa-body上传文件的基本流程记录
一、前端upload(){ const file = document.querySelector("#file"); const fd = new FormData(); // 需要创建一个表单对象 fd.append("f",file.files[0]) axios({ method:'post', url: '/api/upload', data: fd })}二、后端app.use(koaBody({
2020-05-24 23:47:46
651
原创 flask+原生ajax实现上传和下载进度数值显示
注意:本文代码只提供进度数值显示,未实现进度条的显示一、下载进度<div class="schedule">0</div> <button onclick="download()">下载</button> <script> // 要设置为slow 3G才能看得到明显的效果 let schedule = d...
2020-04-01 22:42:14
2777
原创 JS实现apply和call
基本的思路就是,把函数暂时借用一下,执行完后就立刻删除,需要注意的是对参数的处理function Person() { this.name = "无名"}Person.prototype.print = function(age, city) { console.dir(`姓名:$ { this.name },年龄:$ { age...
2020-03-19 21:14:11
176
原创 CSS3 - flex属性:flex-grow、flex-shrink和flex-basis
HTML<div class="parent"> <div class="c c1">1</div> <div class="c c2">2</div> <div class="c c3">3</div></div></div>CSS.parent { ...
2020-03-16 16:49:32
469
原创 JavaScript 排列组合
只针对元素非重复,且结果无序的情况。主要的思路就是用未被组合的元素(data变量内)去组合已经组合过的元素(res变量内),并把自身也放进res中const data = ['a', 'b', 'c'];function getGroup(data) { const res = []; for (let i = 0; i < data.length; i++) {...
2020-03-15 23:09:27
515
1
原创 默认情况下通过axios发送数据,Flask如何获取?
默认情况下,axios的post请求传参是json格式,如下图这种情况下,Flask需要先通过request.get_data()获取到数据,然后再通过json.loads()转换为dict格式
2020-01-15 17:09:27
1396
原创 js生[n,m]范围内的随机数
生成一个[n,m]范围内的随机数,即[n,n+(m-n)],此时的(m-n)的值是可以通过随机数获取的。举例说明生成一个[30,40]的随机数let res = 30 + Math.floor(Math.random() * (40-30+1))40-30+1的原因是Math.random()可以生成一个[0,1)区间内的随机数,Math.floor()向下取整,导致取不到10这...
2019-11-29 20:02:10
277
原创 三栏式布局:flex、绝对定位和浮动
两边的盒子宽度固定,中间盒子自适应。一、flex<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &...
2019-09-26 11:47:09
575
原创 图片加载时显示等待gif图片
<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Co...
2019-09-16 09:46:30
3569
原创 纯CSS实现星级评分特效组件
参考掘金的文章:https://juejin.im/post/5d57adf5f265da03e3697e1b(作者:聪明的汤姆)HTML<form action="" onsubmit="return false"> <div class="parent"> <input type="radio" name="rate" class="...
2019-08-29 10:32:11
797
原创 CSS实现元素width右方向变化、左方向变化、双向变化
改变dom元素的width值,页面上默认是向右变化(向右伸长以及向左缩短)。以下为实现双向变化和向左变化(向左伸长以及向右缩短)1、双向变化(实例)<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8"> <meta name="viewport" con...
2019-08-12 17:01:30
9516
1
原创 重绘(reflows)与重排(repaints)(《高性能JavaScript》随笔(二))
一、重排何时发生?简而言之,当页面布局和几何属性发生变化时就需要“重排”。添加/删除可见的DOM元素 元素位置改变 元素尺寸改变(包括:margin、padding、border等属性) 内容改变,比如:文本改变,或被另一个不同尺寸的图片替代了。 页面渲染初始化 浏览器窗口尺寸改变二、渲染树变化的排队与刷新浏览器每次重排都会产生计算消耗,大多数浏览器通过队列化修改并批量执行...
2019-05-23 16:18:20
276
原创 如何使用JavaScript计算时间间隔(以日期间隔为例),如何使用字符串类型(String)的日期计算事件间隔?
首先创建两个date对象const date1 = new Date("2019-05-01");const date2 = new Date("2019-05-04");// date1:Wed May 01 2019 08:00:00 GMT+0800 (中国标准时间)// date2:Sat May 04 2019 08:00:00 GMT+0800 (中国标准时间)然后将...
2019-05-04 13:57:42
729
原创 绝对定位display:absolute如何实现垂直居中?
首先设置一个父元素(.parent)和一个子元素(.child)的样式。CSS代码:.parent { position: relative; width: 200px; height: 200px; background-color: #eee;}.child { width: 70px; height: 70px; position: absolute; back...
2019-03-11 21:50:03
5077
原创 网络应用程序的架构:C/S架构、B/S架构的区别与优缺点
网络应用层架构一般分为两层架构、三层架构、N层架构。其中B/S架构、C/S架构是两层架构的代表。一、C/S架构C/S架构是Client/Server的缩写,翻译过来就是“客户端/服务器”。C/S架构的业务逻辑主要集中在客户端,而这里的“服务器”,其实可以认为是数据库服务器,因为除了提供基础的数据库服务外,服务器并没有其他的功能。常用于开发应用软件(application softwar...
2019-03-01 23:29:42
16029
原创 JavaScript如何获取被点击的li元素是所有li元素中的第几个?
提出一个问题:如何获取被点击的li是第几个?<ul> <li>a</li> <li>b</li> <li>c</li> <li>d</li></ul>解决思路:我们通过getEleme
2019-02-28 23:26:05
11408
原创 JavaScript 集合交集算法挑战(https://www.w3cschool.cn JavaScript高级脚本算法参考答案)
原题目链接:https://www.w3cschool.cn/codecamp/symmetric-difference.html题目:创建一个函数,接受两个或多个数组,返回所给数组的 对等差分(symmetric difference) (△ or ⊕)数组.给出两个集合 (如集合 A = {1, 2, 3} 和集合 B = {2, 3, 4}), 而数学术语 "对等差分" 的集...
2019-02-23 12:21:11
432
原创 JavaScript 使用循环语句查找通讯录(https://www.w3cschool.cn JavaScript编程实战题目参考答案)
原题目链接:https://www.w3cschool.cn/codecamp/profile-lookup.html 题目:我们有一个联系人列表,里面存储着不同联系人的数组对象。函数 lookUpProfile 有两个预定义参数:firstName值和prop属性 。该函数应检查firstName是实际联系人的firstName,给定的属性(prop)是该联系人的属性。如果...
2019-02-19 22:58:17
497
原创 Sublime Text 3错误:there are no packages available for installation
首先下载一个channel_v3.json的文件下载地址:下载链接:https://packagecontrol.io/channel_v3.json(可能打不开,可以直接用网盘下载)网盘链接:https://pan.baidu.com/s/1Hw6dvpwED4dHZ34EbYRQUw 提取码: 3y6r下载完成后,将channel_v3.json放到某一个文件夹内打...
2019-02-16 16:51:16
918
原创 Python小知识点:判断一个list中是否包含另一个list的全部元素
你可以用for in循环+in来判断,但有个更简单更简洁的方法,就是把list转换成集合。也就是说将是否包含变成是否是其真子集以下是一个简单的例子>>> a = [1,2,3,4,5,6]>>> b = [2,4,6]>>> set(b) < set(a) # a是否包含b,<= 则表示是否是子集True ...
2018-09-28 18:04:57
4596
原创 什么是网络爬虫,网络爬虫有什么用?
简单地说,就是把网页所展示数据通过非人工的手段获取下来。现在是大数据时代,数据分析是解决各行各业相关问题重要的依据。数据分析结果的准确性有很大一部分取决于数据量是否足够大。如果是几十条数据,我们当然可以让人来一条条地复制粘贴。但就像我们前面说的,数据量要足够大分析出来的结果才是有意义的,所以我们需要的数据量通常比较大,往往不可能通过人力来完成数据采集的工作(因为效率低,而且容易出错,重复枯燥的...
2018-08-27 22:47:56
5567
原创 Python小知识点——生成器(generator)与关键字yield的运用
生成器(generator)是一种可迭代对象。在处理包含大量数据时,如果使用list来进行操作,会导致内存占用大,效率低。生成器通过延迟计算,实现了一种边循环边计算的可能,只有在需要的时候才返回相应的结果,而不是一次性返回一整个结果列表,因此可以有效地节省了大量的空间。首先,根据列表生成式,将[]改成()即可创建一个generator>>> a = (x * x f...
2018-08-24 22:34:51
900
原创 Python如何将字符串分割成单个字符,并形成一个list?
一个字符串可以看做是一个list具体操作如下>>> a = "这是一段话">>> a[0]'这'>>> list(a)['这', '是', '一', '段', '话']>>> for x in a: print(x) 这是一段话>>> 所以
2018-08-24 17:55:03
61106
3
原创 用Python实现最简单的文字识别:基于百度云文字识别API
Python版本:3.6.5百度云提供的文字识别技术,准确率还是非常高的,而且每天还有5w次免费的调用量,对于用来学习或者偶尔拿来用用,已经完全足够了。文章提供一个模板,稍加修改就可以直接套用。注释中提到必须输入的地方,你都正确地输入了的话,就可以完成一次简单的文字识别了。# -*- coding: utf-8 -*-import requestsimport base64cl...
2018-08-24 11:15:51
4778
原创 Python多线程网络爬虫实战:获取豆瓣评价人数超过1w+的书籍
爬取页面:https://www.douban.com/doulist/36708212/Python版本:3.6.5主要涉及内容:多线程、网络爬虫、面向对象程序设计 注释标注为 # 多线程 的部分可以直接复制,并根据需求稍加修改即可实现多线程爬虫。# -*- coding: utf-8 -*-import requestsfrom bs4 import Beautiful...
2018-08-23 17:47:13
1184
原创 Python类中有出现同名的函数
class demo(): def func(self): print("hello China") def func(self): print("hello world")if __name__ == '__main__': demo.func()输出结果为hello world这里可以理解为第二个的func()覆盖了第一个fu...
2018-08-14 23:00:24
8113
1
原创 如何提高Python程序运行效率:基于多进程multiprocessing模块
Python版本:3.70;操作系统:Windows10(出发点:通过multiprocessing模块用最简单的方式来让你提高程序运行效率)来了更好的感受到multiprocessing模块提升运行效率的效果,将提出一个问题,并采用两种不同解决方式进行对比来说明。需解决问题:计算变量i从0开始,不断+1,直到i=20000000,并重复3次。(一)普通情况import ti...
2018-07-13 15:41:13
6820
原创 Python网络爬虫实战:通过requests+bs4爬取并保存图片
Python爬虫实战基础篇——图片爬取Python版本:3.5.4涉及内容都是网络爬虫基础:requests和bs4库的应用、正则表达式等import requestsimport osfrom bs4 import BeautifulSoupimport redef GetHtml(url):#获取soup try: r = requests.ge...
2017-10-31 23:46:21
2653
1
基于粗糙集理论RS对属性重要性分析
2018-10-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人