- 博客(137)
- 收藏
- 关注
原创 vue表单设计器对比
不足: json配置部分属性不够人性化,更多组件、模板、属性、api需要完善;设计器:http://www.form-create.com/designer/?表单设计器需要优化完善,预览需要优化,导出代码功能需要完善;源码: https://github.com/JakHuang/form-generator。设计器: https://jakhuang.github.io/form-generator。源码: https://github.com/vform666/variant-form。
2023-06-09 16:06:15
1367
原创 Sentry介绍与使用
Sentry介绍与使用1.什么是sentry?sentry是一个基于Django构建的现代化的实时事件日志监控、记录和聚合平台,主要用于如何快速的发现故障。sentry支持自动收集和手动收集两种错误收集方法;我们能成功监控到vue中的错误、异常,但是还不能捕捉到异步操作、接口请求中的错误,比如接口返回404、500等信息,此时我们可以通过Sentry.caputureException()进行主动上报。2. 监控原理1.传统的前端监控原理分为异常捕获和异常上报。一般使用onerror捕获前端错误:...
2022-07-04 07:18:22
3494
原创 Taro 框架实现原理
Taro 1.x & Taro 2.x编译型架构, 语法编译转换Taro 1/2 属于编译型架构,主要通过对类 React 代码进行语法编译转换的方式,得到各个端可以运行的代码,再配合非常轻量的运行时适配,以及根据标准组件库、API 进行差异抹平,从而实现多端适配的目的;Taro 1/2 整体架构图Taro 1 与 Taro 2 的都是基于这种架构建立的方案, 主要区别:Taro 1 在小程序端是自建构建体系;Taro 2 则是所有端都采用 Webpack 进行编译,可以降低 T
2022-04-28 14:31:31
1270
原创 ES5/ES6的继承区别,babel编译结果分析
继承内容:一共有三部分,一是实例属性/方法、二是原型属性/方法、三是静态属性/方法ES5:原型链继承、构造继承、组合继承、寄生继承, 最佳继承: 寄生组合式继承父类的函数:// 父类function Parent(name) { this.name = name// 实例属性}Parent.type = '午'// 静态属性// 静态方法Parent.sleep = function () { console.log(`我在睡${this.type}觉`)}/
2022-04-28 10:43:12
191
原创 js 原型的问题 Object 和 Function 到底是什么关系?
首先Object和Function都是构造函数,而所有的构造函数的都是Function的实例对象. 因此Object是Function的实例对象;Function.prototype是Object的实例对象实例对象的原型(我们以__proto__来表示)会指向其构造函数的prototype属性, 因此 Object.proto === Function.prototype, Function.proto === Function.prototype, Function.prototype.proto .
2022-04-26 15:29:14
615
原创 for await…of
for…of循环用于遍历同步的 Iterator 接口。新引入的for await…of循环,则是用于遍历异步的 Iterator 接口。async function f() { for await (const x of createAsyncIterable(['a', 'b'])) { console.log(x); }}// a// bhttps://www.bookstack.cn/read/es6-3rd/spilt.3.docs-async-iterator.md
2022-04-25 08:52:21
303
原创 Taro.chooseImage设置了count限制无效
Taro.chooseImage设置了count限制无效https://github.com/NervJS/taro/issues/9213
2022-04-25 08:49:40
376
原创 Taro.chooseImage设置了count限制无效
Taro.chooseImage设置了count限制无效https://github.com/NervJS/taro/issues/9213
2022-04-24 14:22:27
349
原创 antd v3.x版本-提交表单时阻止刷新页面
低版本的antd提交表单时,会刷新页面antd 版本3.x在提交表单时,会刷新页面(看代码如下),怎么处理function myComp ({form}){ handleSubmit = (e) => { console.log(e) } render () { return (<Form onSubmit={handleSubmit}> <Form.item name="abc"> <Input /> </Form.i
2022-04-20 09:05:44
712
转载 A Node.js implementation of RTMP/HTTP-FLV/WS-FLV/HLS/DASH/MP4 Media Server
A Node.js implementation of RTMP/HTTP-FLV/WS-FLV/HLS/DASH/MP4 Media Serverhttps://github.com/illuspas/Node-Media-Server
2022-04-09 20:05:40
208
转载 web音视频的基本了解
https://zhuanlan.zhihu.com/p/100519553?utm_source=com.tencent.qqlite
2022-04-09 19:52:35
136
原创 .async.js from UglifyJs Unexpected token punc «{», expected pun 报错
umi2.8.7引入swagger-ui-react依赖、build时报错解决方法:默认uglifyjs设置为 minimizer: ‘terserjs’,
2022-04-08 13:44:25
1200
1
原创 npm ci 新的安装方式
和npm install 类似,也是用来执行安装区别npm ci 安装前会检测是否有 package-lock.json或者npm-shrinkwrap.json,没有会停止并提示npm ci 安装前会检测package-lock.json 里的版本和package.json里的依赖版本是否有偏差,如果有会停止和报错npm ci 安装前会删除掉node_modules 里的内容npm ci 安装完成后不会改变package.json 或者package-lock.json里的内容npm ci
2022-04-08 08:53:14
329
原创 @umijs/plugin-qiankun
主应用第一步:配置插件export default { plugins: [ [ '@umijs/plugin-qiankun', // 1.8 version { master: { ...masterOptions }, }, ], ],};第二步:配置子应用子应用的配置方式(二选一):export default { plugins: [ [ '@umijs/plugin-qiankun'
2022-03-23 18:09:05
2594
原创 qiankun微前端
项目实践主应用主应用不限技术栈,只需要提供一个容器 DOM,然后注册微应用并 start 即可。注册微应用并启动: // 项目入口页/** * 主应用 **可以使用任意技术栈** * react create-react-app为例,可切换尝试 */ import render from './render/ReactRender';** * Step1 初始化应用(可选) */ render({ loading: true }); const loader = (loa
2022-03-23 17:45:18
1280
原创 for…in和for…of的用法与区别
for…infor…in语句以任意顺序遍历一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。适用于处理有key-value的数据for…in不应该用于迭代一个关注索引顺序的 Array。数组可以用Array.prototype.forEach()和for … of示例var triangle = {a: 1, b: 2, c: 3};function ColoredTriangle() { this.color = 'red';}ColoredTriangle.pr
2022-03-23 09:21:30
715
转载 git-cherry-pick
https://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html
2022-03-16 18:03:32
106
转载 git小技巧--如何从其他分支merge个别文件或文件夹
在实际工作中,一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,进行分别开发。创建分支功能分为2个分支,分别为A、B。A上面有个列表页功能B上面有个详情页功能,还有个系统消息功能产品经理说先上列表功能,于是我们就开发A分支,列表功能很快开发完成。第二天按常理开发B分支,开发到一半,产品经理说目前的系统消息功能需要急着上线,要和列表功能一起上线,当时就懵逼了,然后赶紧放下详情页的开发,立马去开发系统消息功能,开发完之后需要将列表功能和系统消息功能放在一个分支
2022-03-10 10:13:34
1815
转载 useEffect() 的无限循环陷阱
useEffect()用来引入具有「副作用」的操作,例如AJAX请求、DOM操作、启动与结束倒计时和监听与接触事件等,这些都可以在useEffect钩子去做。那么,是不是就真的那么简单的可以直接使用了呢?不是的,你可能会遇到一个陷阱,那就是组件渲染的无限循环,本文将为各位同学详细介绍无限循环的常见场景以及如何避免。副作用副作用指的是当调用函数时,除开返回函数值之外,还对主调用函数产生附加的影响。JS的部分内置函数是有副作用的,例如:[1,2,3].shift(); // 执行完shift函数后,原数据
2022-03-05 08:20:07
718
转载 JavaScript string的match和matchAll
一、matchmatch() 方法返回一个字符串匹配正则表达式的结果str.match(reg)reg:一个正则表达式对象,如果传入的不是正则表达式,则会隐式的调用new RegExp(obj) 将其转为正则表达式。如果不传则会返回一个包含空字符串的数组[""]返回值:1,如果reg使用g(全局搜索)标志,则返回字符串与正则表达式匹配的所有结果组成的数组,如果没有匹配的字符串则返回null2,如果reg没有使用g(全局搜索)标志,则返回第一个匹配的字符串和其他相关的匹配信息。包括:groups
2021-10-29 09:37:00
1130
转载 es6中sring方法之normalize()
normalize() 方法会按照指定的一种 Unicode 正规形式将当前字符串正规化.许多欧洲语言有语调符号和重音符号。为了表示它们,Unicode 提供了两种方法。一种是直接提供带重音符号的字符,比如Ǒ(\u01D1)。另一种是提供合成符号(combining character),即原字符与重音符号的合成,两个字符合成一个字符,比如O(\u004F)和ˇ(\u030C)合成Ǒ(\u004F\u030C)。这两种表示方法,在视觉和语义上都等价,但是 JavaScript 不能识别。'\u01D1
2021-10-29 08:57:45
258
原创 事件模型dom0、dom1、dom2、dom3标准
dom0 级事件的特点:dom0 事件就是直接通过 onclick 绑定到 html上的事件<input onclick="xx"/>或者 input.onclick = function(){ ... }2. 清理dom0 事件时,只需给该事件赋值为 nullinput.onclick = null同一个元素的同一种事件只能绑定一个函数,否则后面的函数会覆盖之前的函数不存在兼容性问题DOM1级事件标准主要定义的是HTML和XML文档的底层结构。DO
2021-10-28 15:41:21
1621
转载 前端下载文件的方法的对比(附 获取文件名方式)
form表单提交这是以前常使用的传统方式,毕竟那个年代,没那么多好用的新特性呀。道理也很简单,为一个下载按钮添加click事件,点击时动态生成一个表单,利用表单提交的功能来实现文件的下载(实际上表单的提交就是发送一个请求)来看下如何生成一个表单,生成怎么样的一个表单:/**下载文件@param {String} path - 请求的地址@param {String} fileName - 文件名*/function downloadFile (downloadUrl, fileName)
2021-10-28 15:30:25
1524
转载 Typescript 中的 interface 和 type 到底有什么区别
转载 https://juejin.cn/post/6844903749501059085
2021-10-27 15:54:33
161
原创 数据类型判断typeof、instanceof、Object.prototype.toString
1. typeof用在基本数据类型和函数时,返回其对应类型的描述,对于引用类型都返回为object.2. instanceof无法判断基本数据类型,对于引用类型数据,返回其其对应类型。3. Object.prototype.toString无论基本数据类型还是引用类型返回其对应类型。对应测试结果如下:...
2021-10-27 08:57:16
486
原创 AndroidStudio SSL peer shut down incorrectly 问题
AndroidStudio 编译时出现如下问题 SSL peer shut down incorrectly 或者某些jar包下载不下来,一般是因为墙的原因导致的。这时候我们就需要配置镜像来解决这个问题。(为了提高jar包的下载速度也可以配置)配置的方法就是在根build.gradle中添加镜像仓库,一般我们选择阿里的 http://maven.aliyun.com/nexus/content/groups/public/完整的如下所示buildscript { repositories {
2021-10-26 17:21:06
474
原创 Webpack 中css 如何 import 使用 alias别名 相对路径
在开发过程中我们发现以下问题:JS可以用alias,css就报错js中:import tool from ‘@/utils/xxx’ (可以引用)css中:@import ‘@/assets/css/reset.sass’ (报错)分析原因是 css 文件会被用 css-loader 处理,这里 css @import 后的字符串会被 css-loader 视为绝对路径解析,因为我们并没有添加 css-loader 的 alias,所以会报找不到 @ 目录。在 Webpack 中 css i
2021-10-26 14:03:14
1238
2
原创 react-native react-navigation dva 架子
react-native react-navigation dva 架子
2021-10-21 16:35:03
127
原创 React-native link命令的详细讲解
1.使用React-native link的背景并不是所有的 APP 都需要使用全部的原生功能,包含支持全部特性的代码会增大应用的体积。但我们仍然希望能让你简单地根据自己的需求添加需要的特性。在这种思想下,我们把许多特性都发布成为互不相关的静态库。大部分的库只需要拖进两个文件就可以使用了,偶尔你还需要几步额外的工作,但不会再有更多的事情要做了。我们随着 React Native 发布的所有库都在仓库中的Libraries文件夹下。其中有一些是纯 Javascript 代码,你只需要去import它们
2021-10-21 13:51:59
1164
转载 library not found for -libstdc++.6.0.9
library not found for -libstdc++.6.0.9报错原因Xcode升级到Xcode10.0后,由于去掉陈旧的libstdc++库替换为libc++,libc++相对是苹果最新版的C++库,经过优化并全面支持C++11解决办法下载libstdc++库,下载链接,提取码arms将 libstdc++、libstdc++.6、libstdc++6.0.9拷贝到Xcode的如下目录:1.真机环境:/Applications/Xcode.app/Contents/Deve
2021-10-20 16:25:41
553
原创 because it has an invalid code signature, inadequate entitlements or its profile has not been exp...
使用还没有验证(没有交99$)的个人开发者账号,新建的一个APP,xcode编译后,在一台新ipad上,跑不起来因为开发者账号没有验证,所以开发的APP不被信任,如果在ipad上点击APP来打开,会出现下面的提示:解决办法很简单,到 设置 -> 通用 -> 设备管理 来信任对应的开发者。当然如果要上架AppStore,还是需要验证开发者的(交钱)。...
2021-10-20 09:36:03
3628
转载 2021-10-18
微信小程序怎样分享一个链接到朋友圈,小程序分享到朋友圈,微信小程序如何分享到朋友圈,小程序链接分享到朋友圈1.微信开发文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/share-timeline.htmlhttps://developers.weixin.qq.com/miniprogram/dev/reference/api/Page.html#onShareTimelinehttps://dev
2021-10-18 17:44:38
78
原创 Maximum call stack size exceeded 问题分析
结果: 超过最大调用堆栈大小js中的堆栈内存,俗称叫做作用域(全局作用域/私有作用域),为js代码执行的环境(执行js代码的地方),基本数据类型值是存在栈内存的堆内存:存储引用数据类型值的(相当于一个存储的仓库),对象存储的是键值对,函数存储的是代码字符串栈内存:一般情况下,函数执行形成栈内存,函数执行完,浏览器会把形成的占内存自动释放;有时候执行完成,占内存不能被释放全局作用域在加载页面的时候执行,在关掉页面的时候销毁;调用堆栈会一直增长,直到达到限制:浏览器硬编码堆栈大小或内存耗尽。
2021-08-03 10:14:40
619
原创 iterator迭代器
iterator迭代器iterator迭代器是ES6非常重要的概念,但是很多人对它了解的不多,但是它却是另外4个ES6常用特性的实现基础(解构赋值,剩余/扩展运算符,生成器,for of循环),了解迭代器的概念有助于了解另外4个核心语法的原理,另外ES6新增的Map,Set数据结构也有使用到它.iterator迭代器是ES6非常重要的概念,但是很多人对它了解的不多,但是它却是另外4个ES6常用特性的实现基础(解构赋值,剩余/扩展运算符,生成器,for of循环),了解迭代器的概念有助于了解另外4个核心语
2021-07-14 09:24:50
157
转载 @babel/preset-env
@babel/preset-env 根据指定的执行环境提供语法装换,也提供配置 polyfill。Babel 7 已经弃用年份 preset: babel-preset-es2015, babel-preset-es2016, babel-preset-es2017, babel-preset-latest. 直接使用一个 env 搞定。所以我们需要指定执行环境 Browserslist, Browserslist 的配置有几种方式,并按下面的优先级使用:@babel/preset-env 里的
2021-07-13 16:16:43
9558
转载 判断JS类型常用的三种方式
前言:判断JS类型,有以下几种方法:1、typeof 2、object.property.toString.call 3、instance of。(一)JS的类型JS的基本类型共有七种:bigInt(bigInt是一种内置对象,是处symbol外的第二个内置类型)、number、string、boolen、symbol、undefined、null。复杂数据类型有对象(object)包括基本的对象、函数(Function)、数组(Array)和内置对象(Date等)。(二)判断JS的类型方法一、ty
2021-05-27 17:25:07
5578
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人