随笔分类 -  前端技术栈

上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页
摘要:关于redux 中间件 在redux中,我们通过dispatch action来更新数据状态,通过reducer来返回新的状态 如果我们想要记录某个状态更新前后的日志,那么我们只需要在此处的dispatch前后做一些处理即可 那如果我们要记录所有状态更新的日志呢?在所有调用disaptch的地方都加 阅读全文
posted @ 2022-04-11 19:32 IslandZzzz 阅读(66) 评论(0) 推荐(0)
摘要:什么是 redux? 三大原则? 什么是 redux Redux 是一个基于 js 的全局可预测状态容器,主要用于现代前端框架中进行全局状态管理,能够在不同组件之间进行状态共享 Redux 常与 React 配合使用,但它并非只能用于 React,由于 Vue 官方推出了自己的状态管理库 Vuex, 阅读全文
posted @ 2022-04-11 19:31 IslandZzzz 阅读(419) 评论(0) 推荐(0)
摘要:Typescript 面向对象 类和接口 权限 readonly和private 类:定义了一切事物的抽象特点 对象:类的实例 面向对象三大特征: 封装: 隐藏内部实现,仅对外提供公共接口 继承: 子类继承父类,具有父类的属性和方法 多态: 在重写或实现相关属性方法时,不同的子类可以有不同的实现 属 阅读全文
posted @ 2022-04-11 19:30 IslandZzzz 阅读(323) 评论(0) 推荐(0)
摘要:1 简介 JSX(JavaScript XML),即可拓展的JavaScript,是react定义的一种类似于XML的js扩展语法:JS+XML。它本质上是React.createElement(type,config,...children)的语法糖,主要用于创建React元素,生成虚拟DOM 2 阅读全文
posted @ 2022-04-11 19:28 IslandZzzz 阅读(600) 评论(0) 推荐(0)
摘要:一、前言 本篇主要基于源码谈谈jsx被编译之后,react在创建react element时做了什么 关于jsx的基础知识可以看看另一篇博客由浅入深理解jsx 二、关于CreateElement jsx被babel等编译工具转换之后,实质上是React.createElement方法。在react/ 阅读全文
posted @ 2022-04-11 19:24 IslandZzzz 阅读(302) 评论(0) 推荐(0)
摘要:如何实现一个Promise (目录) 1 实现Promise构造函数 Promise自身包含一个状态属性PromiseStaus,一个异步结果属性PromiseResult 状态只在pending、fulfilled、rejected之间枚举,改变状态的两个函数resolve、reject由Prom 阅读全文
posted @ 2022-04-11 19:20 IslandZzzz 阅读(178) 评论(0) 推荐(0)
摘要:ES6 Iterator迭代器 与 Generator生成器 1.1 为什么要有 Iterator 在ES6语法中,有序数据结构已有许多 如Array、Set、Map、String、类数组(如arguments)等 当我们不确定数据是何种类型但又要对它进行遍历时,我们只能去做针对性的判断处理 因此, 阅读全文
posted @ 2022-04-11 19:19 IslandZzzz 阅读(105) 评论(0) 推荐(0)
摘要:JavaScript 数据类型 ECMAScript定义了8种数据类型 7种原始类型 Boolean Null Undefined Number BigInt(ES10) String Symbol 1种引用类型 Object TypeScript 类型 需要注意的几个点 unitypes联合类型 阅读全文
posted @ 2022-04-11 19:17 IslandZzzz 阅读(56) 评论(0) 推荐(0)
摘要:TypeScript 泛型 泛型是类型的变量,可以动态填入类型值 泛型还可以继承接口从而实现对填入类型的约束 初试泛型 const log = console.log // 为函数添加泛型,此时T表示形参类型 // 定义一个打印函数,打印并返回此形参 function print<T>(arg: T 阅读全文
posted @ 2022-04-11 19:16 IslandZzzz 阅读(119) 评论(0) 推荐(0)
摘要:冒泡排序与优化 冒泡排序是一种简单经典的排序,通过比较相邻位置,在第n趟比较结束之后即可确定第n大/小的值,比较结束后全部元素按照顺序排列 时间复杂度 平均时间复杂度为O(n²),最优为O(n),属于性能比较差的排序方式 空间复杂度 由于只在数组里面进行元素位置的交换,属于原地排序,不分配额外内存空 阅读全文
posted @ 2022-04-11 19:15 IslandZzzz 阅读(316) 评论(0) 推荐(0)
摘要:leetcode 1 两数之和 O(n)时间复杂度实现 描述: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1]。 /** 思路: map实现 一个数为a,另一个数即为diff = s 阅读全文
posted @ 2022-04-09 02:35 IslandZzzz 阅读(74) 评论(0) 推荐(0)
摘要:正则判断多个数字之间只能用逗号分隔 /^[0-9]+(,[0-9]+){0,}$/.test(val) 阅读全文
posted @ 2022-04-07 13:53 IslandZzzz 阅读(479) 评论(0) 推荐(0)
摘要:interface User { name: string; id: number; age: number; } // Required提取全部属性 type reqUser = Required<User> /** type reqUser = { name: string; id: numbe 阅读全文
posted @ 2022-04-02 17:31 IslandZzzz 阅读(199) 评论(0) 推荐(0)
摘要:Typescript 类型体操 在网上看了一圈资料,类型体操的大致思路就是 通过extends结合三元运算符去判断与选择,通过never去过滤,通过keyof、obj[key] 去提取等等,通过这些运算最终得到更细粒度的类型值 指定类型为某一个值 // ts判断类型 type isNumber<T> 阅读全文
posted @ 2022-04-02 16:48 IslandZzzz 阅读(273) 评论(0) 推荐(0)
摘要:React 长列表加载 实现虚拟列表 效果 实现思路 定义一个container 高为一屏高 定义一个listWrapper 高为所有列表元素的高度,来撑开容器 定义一个itemWrapper 高为一屏高度,来跟随上、下拉操作进行位移,从而总是覆盖展示在当前屏 滚动时关键值计算: 一屏个数 limi 阅读全文
posted @ 2022-04-01 14:08 IslandZzzz 阅读(627) 评论(0) 推荐(0)
摘要:1 关于Proxy Proxy,代理,是ES6推出的一个特性。通过Proxy我们可以拦截对象的某些操作,并在其中加入定制化代码,使这些操作变得更加丰富灵活 语法: let proxy = new Proxy(target,handle) Proxy表示创建代理实例的类,target为被代理的对象,h 阅读全文
posted @ 2022-03-26 01:44 IslandZzzz 阅读(277) 评论(0) 推荐(0)
摘要:一、关于new运算符 这篇博客主要关注如何实现new运算符,不太了解new的同学可以看看这篇博客 链接: 谈谈JS new运算符到底做了些什么 二、前期准备: 实现一个new运算符需要做哪些事情 创建一个空对象 instance 绑定构造函数的this,使其指向instance,执行构造函数为ins 阅读全文
posted @ 2022-03-26 01:43 IslandZzzz 阅读(59) 评论(0) 推荐(0)
摘要:一、关于new 在面向对象的语言中,new关键字总是用于实例化一个对象 在JavaScript中,作为一个运算符,new常与构造函数一起使用 let map = new Set() function Apple(size,color){ this.size = size this.color = c 阅读全文
posted @ 2022-03-26 01:41 IslandZzzz 阅读(92) 评论(0) 推荐(0)
摘要:前言 无论是做项目还是找工作,数组扁平化都是一种重要的知识技巧 在2019年发布的ES10中,js更是对数组新增了扁平化的API:Array.protoytype.flat 下面将给出flat实现的几种方式,顺便谈谈这些方式的优缺点 一、转成字符串处理 思路是将数组转成成字符串处理,通过join或者 阅读全文
posted @ 2022-03-26 01:39 IslandZzzz 阅读(311) 评论(0) 推荐(0)
摘要:移动端验证码组件,输入一个数字立即跳到下一个输入框,删除一个数字立刻返回上一个输入框,用useEffect会出现键盘闪烁的问题。 因为useEffect添加副作用是在dom渲染到浏览器之后,即浏览器绘制之后执行,不会阻塞浏览器,但是可能导致重绘与回流,从而出现闪烁。 useLayoutEffect是 阅读全文
posted @ 2022-03-24 20:49 IslandZzzz 阅读(295) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页