- 博客(441)
- 资源 (10)
- 收藏
- 关注
原创 TypeScript系列教程十一《装饰器》 -- 参数装饰器
参数装饰器修饰函数参数,一般应用场景配合方法装饰器一起,达到检查参数的目的。参数装饰器表达式会在运行时当作函数被调用,传入下列3个参数:对于静态成员来说是类的构造函数,对于实例成员是类的原型对象。成员的名字。-参数在函数参数列表中的索引。下面通过例子具体查看。代码示例示例目的:根绝参数器找到返回的值,然后利用方法装饰器返回处理后的结果。代码思路根据参数装饰器标识通过reflect-metadata 将数据记载到方法元数据,然后传递到方法装饰器方法装饰器调用原有方法返回值代码
2022-04-02 08:39:33
2138
原创 TypeScript系列教程十一《装饰器》 -- 属性装饰器
属性装饰器和其他装饰器功能类似,其设计也是为了统一的、复用度更高的去监听,改变属性。属性装饰器声明在一个属性声明之前(紧靠着属性声明)。 属性装饰器不能用在声明文件中(.d.ts),或者任何外部上下文(比如 declare的类)里。属性装饰器表达式会在运行时当作函数被调用,传入下列2个参数:对于静态成员来说是类的构造函数,对于实例成员是类的原型对象。成员的名字。注意 属性描述符不会做为参数传入属性装饰器,这与TypeScript是如何初始化属性装饰器的有关。 因为目前没有办法在定义一个原型对
2022-04-01 14:36:23
2784
原创 TypeScript系列教程十一《装饰器》 -- reflect-metadata
reflect-metadata 是ES7 的提案 ,TypeScript 1.5 已经开始使用。reflect-metadata是一个单独的npm 包,具体介绍可以看看官方介绍。reflect-metadata 拆成两个单词,reflect 反射和 metadata,通俗理解 利用反射的原理修改元数据。...
2022-03-28 15:18:11
2115
3
原创 TypeScript系列教程十一《装饰器》 -- 装饰器与继承
装饰器 并不是 TypeScript特有的,他是一种设计模式,对于这种设计模式和之前学过的继承、适配器、组合的模式有些类似,这里再盘点一下。装饰器模式的概念
2022-03-18 08:45:57
758
原创 改别人Bug 系列《递归中使用Return 问题》
送人玫瑰,手留余香。回味一下余香,并总结记录。项目场景:语言: JS框架: React开发编辑器: VSCode问题提出者:同事小G 问题描述同事小G,想比较两个对象是否相同,他提供了代码发现return 退不出函数。提供代码如下:// 判断对象是否相等const isEqual = (obj1, obj2) => { if (Object.keys(obj1).length !== Object.keys(obj2).length) { retur.
2022-03-16 18:45:14
1886
原创 React/Vue 等前端应用通过jenkins 自动打包升级全流程演示(一万多字有点长)
gitlab + jenkins + docker + ngnix 自动提交触发打包部署全过程演示万字长文
2022-03-09 06:30:00
1016
翻译 《tsconfig》之 allowSyntheticDefaultImports
allowSyntheticDefaultImports : Allow Synthetic Default Imports (允许有没有默认导出的模块导入)出现问题新建ts项目导入react 出错,发现了allowSyntheticDefaultImports属性。allowSyntheticDefaultImports 配置介绍当allowSyntheticDefaultImports 设置为true 的时候,允许下面的导入:import React from "react";用来替代.
2022-02-17 09:53:24
5270
原创 nodejs path中resolve(‘xx‘) 和 resolve(__dirname,‘xx‘) 有什么区别
文章目录一、resolve二、__dirname三、resolve('xx') 和 resolve(__dirname,'xx') 区别例子一例子二总结一、resolve官方文档介绍:传送门看完时候是不是不大懂。resolve其实就是相当于在node 运行当前目录进行一些列文件cd 等命令操作。path.resolve('work/js', '..', 'ts/vue') 相当于:cd work/jscd ..cd ts/vuepwd 二、__dirname__d
2022-02-15 15:18:27
1238
原创 2021想要的都有了,星宇大前端2022重零开始
文章目录前言2021 回顾2022 展望前言2021过去了,疫情还是没有结束的意思。生活还在继续,我也踏上了30岁得第一个年头。体重超过了170斤,性格还是那个并没有成熟,十几岁的外甥还是觉得我是个小青年。心理不愿意张大,我被保护的很好,幸福的人成熟的晚吧。人其实挺有意思,渴望永远保持童真,却被嫌弃着不成熟。扯远了,回顾下我的2021吧。 2021 回顾让我回顾一下2021,真的太幸福了2022 展望...
2022-01-27 14:40:05
1071
6
原创 antd table 设置固定高度
这是一个关于antd table 的一个小问题,官方api有介绍,为什么要写这篇博客,因为最初百度的时候没看到的答案都是一个模板且费劲,破坏全局css,所以记录下。问题描述我再使用antd 的table ,现在有个弹窗,弹框里有列表table,发现设置完是这个样子。太长了,我要固定下table 高度,想想用css 样式设置下height 和滚动不就行了。wtf ,看来想简单了,于是乎就百度了下。多半是强行重写ant 的table 样式。官方不推荐,我一般不这么用。于是乎想想其他办法。解决方.
2022-01-26 17:40:22
15498
2
原创 MakeApie 将于 2月15号开始暂停服务
Make A Pie 是由社区贡献者维护的用于 Apache ECharts 作品分享的第三方非官方社区。一直以来MakeApie 给我们带来了太多的工作中的灵感,echarts复制粘贴党必备,导致没有好好学echarts。今日登录看到这个消息,感到难过和些许思考。Make A Pie公告MakeAPie 将于 2 月 15 号开始暂停服务,该期间请及时备份您的数据,非常抱歉给您带来不便。开源等于免费?目前不知道为何关闭,很多开源作品的离场的经验中不难发现开源最后都是无法支撑到最后,不管是.
2022-01-24 15:21:05
13887
31
原创 webpack5打包一个TS 库并发布到npm 一条龙实战教程(附模板代码)
webpack5 打包ts库从零到发布到npm 手摸手教程。(附代码仓库)
2022-01-19 07:00:00
3667
2
原创 eslint 规则之 《Missing radix parameter》
eslint 规则连接:https://eslint.org/docs/rules/radix原文规则错误描述解读在我们使用parseInt 的时候,应该设置第二个参数据,而不能不写使用默认。思考parseInt 第二个参数radix 是什么意思语法:parseInt(string, radix)参数描述:参数描述string必需。要被解析的字符串。radix可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。数字的基数是什么意思呢?.
2022-01-17 12:02:08
1240
原创 别在问我跨域问题了,跨域详解以及前端、后端、运维解决的方法统统写在这里了。
文章目录前言一、为什么会跨域1. 什么是源2. URL结构3. 同源不同源举????同源例子二、前端解决方案三、后端解决方案四、运维解决方案五、总结前言跨域问题一直是前端的一大难题,从前端出道到至今,无论是自己还是身边的同事,以及网上前端朋友都被这个问题困扰着。尤其最近写了一个网络封装,用户提出最多的便是跨域问题,解释了很多次,都写在这里吧,以后自己忘了也可以看看,总结一下。贴上标准的前端跨域报错(SpringBoot后台):Access to XMLHttpRequest at '…' fro
2022-01-16 20:08:41
4942
3
原创 还在用git commit -m 吗?Git 提交规范和自动产生changelog手摸手教程。
前言我们在使用一个比较厉害的框架或者库的时候,经常可以看到CHANGELOG.md,维护版本更新内容。比如vue-next:这种版本更新内容是非常必要的,如果用户使用了你的轮子,连更新内容都不知道,试问你敢用吗?那么这些都是怎么写的呢?每次发版都要手动记录吗?显然不是,这些都是靠提条记录生成的。下面一起他探索一下吧。 正文生成这种CHANGELOG 有一个前提,就是团队成员都按规矩提交。人不是机器,习惯不养成往往会忽略,这种约束还是工具来吧。一、安装 commitizen
2022-01-12 06:30:00
2037
2
原创 webpack 打包第三方库里有图片,集成包的时候图片变成本地路径加载不上,追寻了半天终于解决了困扰很久的问题。
困扰很久的webpack 打包第三库含有图片,你是怎么解决的呢?我是这么解决的。
2022-01-10 07:00:00
1426
原创 threejs地球、星空、世界轮廓绘制、飞线、坐标涟漪 、旋转动画(上篇)
一个基于threejs实现的漂亮的3d地球,干货,干的你咽不下去。
2022-01-07 07:00:00
9794
28
原创 umijs3引入xlsx-style ./cptable模块找不到问题
功能需求:同事在做antd-table 导出功能,使用js-export-excel 插件。但是无法导出样式,集成xlsx-style 可以实现但是出现了如下bug环境背景框架UmiJSyarnantd-table 导出,依赖js-export-excel 库 出现问题 ERROR Failed to compile with 1 errors 下午4:51:30This relative m.
2021-12-17 17:04:48
1219
10
原创 echarts geo根据缩放动态加载effectScatter以及居中问题解决方案
echarts 画中国地图出现effectScatter标注点,但是由于点太密集,坐标太多,客户想实现地图一样根据缩放显示不同数据。背景环境框架: UMI/React Hooksecharts版本:4.9.0react-for-echarts 实现思路events 监听时间georoam(拖动和缩放) <ReactEcharts option={option} ref={instance} onEvents.
2021-12-15 17:36:44
2956
1
原创 umijs 框架加载mp4视频背景
最近在做一个大屏项目,有一个需求视频做背景,这个在vue 开发的时候做了很多遍了,以为手到擒来。背景分析前端框架: UMIvedio 标签加载视频数据 问题表现找不到视频路径放到src 文件夹下还是public 文件里都是播放不了的。 解决1、放到public 文件家里2、vedio 标签加载src 直接下./ 在root 目录加载即可 代码js <video loop autoPlay mu.
2021-12-09 16:07:27
2870
原创 Dart语法基础系列八《抽象类》
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。抽象类概述通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。抽象类通常应用于定义接口。抽象类特点:不能实例化类似接口,可以部分实现可以继承类可以利用.
2021-11-17 07:00:00
763
2
原创 Dart语法基础系列七《类》
类在每个语言都是最核心的内容。dart 的类与其他语言差别不是很大,但是也有出入。 类属性类里直接写属性是报错的,必须有默认值初始化或者构造函数赋值。可以给一个默认值或者可选class Person { String name = "小明"; int age = 3; String? sex;} 构造函数类默认会生成构造函数。构造函数分为:常规类名构造命名构造函数常规构造函数常规写法Person(String name, int a.
2021-11-06 07:45:00
529
原创 Dart语法基础系列六《函数》
通过实战了解Dart的函数常用知识点通过简单的实例,更快捷的了解Dart函数相关知识。示例以最简单的sum 函数开始。函数定义方法一首先我们 以JavaScript的方式定义Sum函数 sum(a, b) { return a + b; } print(sum(2, 3));运行一下是可以的,类型和返回值都会自动的推断方法二我们加上类型改造下sum...
2021-11-03 07:30:00
396
原创 Dart语法基础系列五《String 源码API详解》
从源码详细学习Dart字符串,基本使用在上篇已经介绍过了,就不赘述了。首先找到string.dart 文件属于 dart.core 模块 String 是Unicode UTF-16的序列字符串由Unicode UTF-16代码单元序列表示,可通过[codeUnitAt]或[codeUnits]成员访问: var string = 'Dart'; string.codeUnitAt(0); // 68 string.codeUnits; // [68, 97, 114, .
2021-10-13 08:00:00
907
翻译 Dart语法基础系列四《基本数据类型》
Dart 在编程中基础内置类型Dart 语言支持以下内建类型:NumberStringBooleanList (也被称为 Array)MapSetRune (用于在字符串中表示 Unicode 字符)Symbol这些类型都可以被初始化为字面量。 例如, ‘this is a string’ 是一个字符串的字面量, true 是一个布尔的字面量。因为在 Dart 所有的变量终究是一个对象(一个类的实例), 所以变量可以使用 构造涵数 进行初始化。 一些内建类型拥有自己的构造函数。.
2021-10-08 22:45:00
532
原创 Dart语法基础系列三《常量变量》
基本语法,先从变量开始。Dart 变量声明基础声明一个字符串:main() { String str = 'hello wold'; print(str);}同样可以使用const ,fiinal,var 来声明,由于不确定类型,会和TS、Swift、Kotlin一样类型推导str 会被推导成字符串,然而并不会像js的var一样,dart 也是强类型语言。dynamic 字段dynamic 是动态的,类似于TS 和 Swift any 语法。编译期不做检查,在运行时.
2021-10-08 21:00:00
436
原创 Dart语法基础系列二《语法规则》
环境搞定,开搞Dart。入口函数老规矩首先Hello worldWTF,连个打印都不让写了。提示需要一个函数体去执行。dart需要mian函数入口去执行。main() { print('hello world');}这样就可以你好世界了入口函数的另一种写法:void main() { print('hello world');}dart的函数返回值是在前面,void代表返回值为空。 命名规则编程的规则不是前篇一律的,就和每个国家的法律和各地民宿不一样.
2021-09-30 15:10:41
501
原创 Dart语法基础系列一《语言简介》
学习一门语最开始应该好好了解他,带着动机和兴趣学习才能更快的融入。github dartLang快速碎片基本简介:Goole 开发,免费开源现代开发语言,曾经目的想取代JS现在主打构建多平台应用,服务于Flutter语言优势:高效Dart 语法清晰简洁,工具简单而强大。 输入检测可帮助您尽早识别细微错误。 Dart 拥有久经考验的 核心库(core libraries) 和一个已经拥有数以千计的 packages 生态系统快速Dart 提供提前编译优化,以在移动设备和 web .
2021-09-30 11:47:06
413
原创 TypeScript系列教程十《模块》
JavaScript 处理代码的模块化有很多种办法,类似于AMD CommonJS UMD 等等。TypeScript 从2012年开始,已经支持了大部分的格式,但随着时间的推移,社区和JavaScript规范已经融合到一种称为ES模块(或ES6模块)的格式上。你可能知道import/export语法。...
2021-09-27 14:56:13
653
1
翻译 TypeScript系列教程九《类型转换》-- 模板文本类型
模板文本类型建立在字符串文本类型的基础上,并且能够通过联合扩展为许多字符串。它们的语法与JavaScript中的模板文本字符串相同,但用于类型位置。当与具体的文本类型一起使用时,模板文本通过连接内容生成新的字符串文本类型。type World = "world"; type Greeting = `hello ${World}`; //type Greeting = "hello world" 联合类型插值type EmailLocaleIDs = "welcom
2021-09-16 14:44:46
602
1
原创 TypeScript系列教程九《类型转换》-- 映射类型
类型转换是TS最好玩也是语言的灵魂,想玩好需要熟练各种手段和工具,下面一一介绍类型转换的一些常用手段。Mapped Types有时候对象属性类型重复或者一个类型基于另一个了类型的时候映射类型基于索引签名的语法构建,用于声明尚未提前声明的属性类型:type OnlyBoolsAndHorses = { [key: string]: boolean | Horse;};const conforms: OnlyBoolsAndHorses = { del: true, rodney.
2021-08-17 09:32:32
693
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅