webpack + ts 配置路径别名总结

webpack + ts 配置路径别名总结 自我体验加总结:在配置脚手架时,定制别名很有必要,可以使得代码更优雅,可读性更强。但在使用ts的时候,即便项目能够运行,vscode 确时长会提示 can’t find module xxx。总结下来,如果想要完全解决这个问题需要考虑以下两方面: 概述 语 ... »

Docker+Cmd+Cli+Git之前端工程化纪要(二)自定义类package.json文件管理模块包

全新升级后的FE工作流为:使用FE命令包进行项目的初始化,其中包括项目初始化、拉取脚手架、私库拉取模块包或后期扩展的CI/CD等与本公司工作流相关的操作。 出现的问题如下: 脚手架工具的包依赖信息存放在根目录的package.json中,若业务项目仍存放在package.json中,那么后期再更新脚 ... »

Docker+Cmd+Cli+Git之前端工程化纪要(一)整体目标

之前一版的工程化核心产物就是一个IDE,即利用python+node将webpack等技术将FE的开发、编译、部署上线等环境集成在sublime中,产出了一个核心工具。但随着长期的使用与技术栈的优化升级等,原工程化工具的局限性、便利性、跨平台的兼容性等方面的问题正在逐渐暴露,加之最近的疫情因素,更让 ... »

闭包与作用域再次深究

最近看到一个有意思的函数 那么以下的结果会打印出什么呢? 结果是:0; 那么继续test函数换成以下两种又会是什么结果呢? test2是网上比较常见的,结果是我们在读取i的时候,i已经全部变为5;test3和test只有两行代码不同,但是结果却完全不一样。 之前曾经理解是因为我们调用的时候for循环 ... »

IOS13系统升级带来的H5兼容性问题

20号新推送的IOS13给很多app厂商和RD带来了便秘的感觉,目前复现的问题如下,后续还会持续更新: 1.H5 hybrid输入框导致的页面上移,卡住不动。收起减半后,页面出现半截白屏。(IOS12 + IOS13) IOS12会在键盘弹出时将页面上推,并压缩body的高度。 IOS13会在键盘弹 ... »

koa2,koa-jwt中token验证实战详解

用户身份验证通常有两种方式,一种是基于cookie的认证方式,另一种是基于token的认证方式。当前常见的无疑是基于token的认证方式。以下所提到的koa均为koa2版本。 token认证的优点是无状态机制,在此基础之上,可以实现天然的跨域和前后端分离等。 token认证的缺点是服务器每次都需要对 ... »

从Flux到Redux详解单项数据流

从Flux到Redux是状态管理工具的演变过程,但两者还是有细微的区别的。但是最核心的都还是观察者模式的应用。 一、Flux 1. Flux的处理逻辑 通俗来讲,应用的状态被放到了store中,组件是store状态的一个映射,用户通过事件触发action,再通过Dispatcher根据不同的acti ... »

Typescript高级类型与泛型难点详解

最近做的TS分享,到了高级类型这一块。通过琢磨和实验还是挖掘出了一些深层的东西,在此处做一下记录,也分享给各位热爱前端的小伙伴。 其实在学习TS之前就要明确以下几点: 1. typescript 是javascript的超集,这点是官方文档最先说明的,但是具体怎么理解就千差万别了。其实通俗的来说,t ... »

Typescript 3.x 中常见的几种函数重载方法与应用示例

所谓的重载,其实就是使用相同的函数名,传入不同数量的参数或不同类型的参数,以此创建出多个方法。 1. 最常见的,也就是根据定义傻瓜式地判断参数类型与数量 2. 其次就是使用常规的重载签名 使用重载签名进行重载,好处在于可以对传入的参数进行限制,只有当签名存在对应类型或数量的参数时,才不会报错。 此处 ... »

typescript中抽象类与接口详细对比与应用场景介绍

现如今,TS正在逐渐成为前端OO编程的不二之选,以下是我在学习过程中对抽象类和接口做的横向对比。 1. 抽象类当做父类,被继承。且抽象类的派生类的构造函数中必须调用super();接口可以当做“子类”继承其他类 抽象类派生: 接口继承类: 当类被接口继承时,通常是需要为这个类的子类添加约束。例如下面 ... »

在混合开发中软键盘引起的布局问题、input与可编辑DIV兼容性问题汇总

此文复现的所有兼容性问题均为以下情况: 1. 腾讯X5内核 2. 全屏webview 问题如下: 1. IOS12 中软键盘弹出导致页面顶部截断,并且无法恢复。 解决方法:添加交互事件,调用本地方法,在键盘收起后执行页面回滚。 2. 页面中有多个可编辑DIV时,点击IOS系统中软键盘左上方的上下箭头 ... »

作业系统前端架构总结

项目目的: 1. 配合本地完成app资源本地化(后面文章会详细说明) 2. 新题型发布无需app本地发版 3. 统一数据源 4. 前端组件的高维护性、高复用性、高可读性 5 更换技术栈:vue全家桶 项目技术栈: 根据公司前端工程化定制的 sublime IDE(webpack,svn,secure ... »

细说Vue作用域插槽,匹配应用场景。

最近在官方文档中看到,vue新增了一种插槽机制,叫做作用域插槽。要求的版本是2.1.0+。 首先来说一下:顾名思义,所谓作用域插槽,主要就在作用域,需要注意的是(以下几点看不懂不要紧,配合下面的例子,你会一看就懂): 1. 组件中的slot标签只能有有一个,而这一个slot用于替代组件调用时的多个标 ... »

细说继承、原型与原型。

首先需要明确以下几点: 1. js中除了Object.prototype和null之外,每一个对象都有一个原型对象。 2. 获取原型对象: 实例对象通过__proto__,构造函数通过prototype。 3. Object.defineProperty()和Object.assign()之类的函数 ... »

js数据结构之链表(单链表、双向链表、循环链表)

首先,链表有以下特点: 1. 存储空间不固定,可灵活扩充 2.方便多次的插入和删除,效率较高 单链表 单链表是最常用的链表,其对数据的操作均为单项的,向后查找的。 双向链表 双向链表可以方便地对数据进行向前和向后查找(操作),如播放器正向播放音乐时用户存在上一曲和下一曲的操作需要,此时就用到了双向链 ... »