自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Redux基本使用

combineReduces将两个reducers返回的对象合并成一个对象使用mapStateToProps 拿状态值的时候要xxx.counterInfo.xxx。注意dispatch只能派发一个对象,如果想要派发一个函数,只能利用react-thunk中间件来实现。封装成一个函数,在项目时可以定义一个actionCreator文件夹。

2024-02-23 14:21:49 387

原创 React18常用语法

useCallback的作用是缓存一个函数,使得组件重新render时,该函数不会被重新定义,仅仅是从缓存中取出来。这样可以避免因为函数重新定义导致的额外开销,提升组件的性能。当追踪依赖的值不变时,子组件不会被重新渲染。在React中不允许组件访问其他组件的 DOM 节点和自己的子组件。和vue中的计算属性一样,只有其响应式依赖变化时才会执行它,这意味着只要相关依赖不变化,就不会执行。当点击改变数字的按钮时,expensiveValue函数不执行,getname函数执行。除了三元表达式外,也可以使用if…

2024-02-23 14:00:24 1194

原创 Vue项目使用高德地图

在一些简单的大屏类展示应用/网页中,经常会用到地图相关的展示场景,除了一些特殊的三维场景需要用Gis/BIM或者WebGL,一些简单的业务就可以直接使用高德地图或者百度地图来完成。本文主要讲述在Vue项目中高德地图的引用方式以及一些简单的API的使用。演示项目使用脚手架搭建项目。

2024-02-23 13:36:04 2157

原创 TypeScript 类型体操练习(一)

实现一个 IF 类型,它接收一个条件类型 C ,一个判断为真时的返回类型 T ,以及一个判断为假时的返回类型 F。在类型系统里实现 JavaScript 内置的 Array.concat 方法,这个类型接受两个参数,返回的新数组类型应该按照输入参数从左到右的顺序合并为一个新的数组。在类型系统里实现 JavaScript 的 Array.includes 方法,这个类型接受两个参数,返回的类型要么是 true 要么是 false。从联合类型 T 中排除 U 中的类型,来构造一个新的类型。

2024-02-23 13:32:40 783

原创 TypeScript入门(五)类型操作

该句的意思是:如果 T 能赋值给 (arg: infer P) => any,则结果是 (arg: infer P) => any 类型中的参数 P,否则返回为 T(其中T extends con?当 extends 左边的类型可以赋值给右边的类型时,就会得到第一个分支(“true” 分支)的类型;in操作符作用: 遍历类型 下面的例子k是变量(可以类比for key in Obj) 也可以用于联合类型。将对象类型的键组成联合类型,如果对象类型的键是具有类型的索引签名,则keyof 返回这些类型。

2024-02-23 13:29:25 314

原创 TypeScript入门(四)泛型

参考基础类型实用的工具类型:// 将所有的属性值变为可选类型 Partialage:number// Record 构造一个类型,其属性名的类型为 K ,属性值的类型为 T。这个工具可用来将某个类型的属性映射到另一个类型上// Pick 从类型 Type 中挑选部分属性 Keys 来构造类型。// ------> Pick 源码 keyof 来获取类型的所有键 返回一个联合类型。

2024-02-23 13:26:54 360

原创 TypeScript入门(三)类的定义

抽象类做为其它派生类的基类使用。它们一般不会直接被实例化,并且抽象类中的抽象方法不包含具体实现并且必须在派生类中实现。这意味着这个类不能在包含它的类外被实例化,但是能被继承,详细请参考文档。时,既可以在类中使用也可以在类外使用,默认使用public。标记时,只能在当前类中或者时派生类中使用。注意:构造函数也可以被标记成。时,只能在当前类中使用。

2024-02-23 13:21:34 368

原创 TypeScript入门(二)接口的使用

age:number//缺少 接口中的属性时会报错age:18} // constructor 为静态属性 ts不会检查 所以在定义接口时不用定义constructor。

2024-02-23 13:18:49 412

原创 TypeScript入门(一)基本数据类型

在上下文中当类型检查器无法断定类型时,一个新的后缀表达式操作符!有时候你会遇到这样的情况,你会比 TypeScript 更了解某个值的详细信息。通常这会发生在你清楚地知道一个实体具有比它现有类型更确切的类型。通过 & 运算符可以将现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。这种情况下,我们不希望类型检查器对这些值进行检查而是直接让它们通过编译阶段的检查。我们会想要为那些在编程阶段还不清楚类型的变量指定一个类型。never 类型表示的是那些永不存在的值的类型,例子如下。

2024-02-23 13:10:57 378

原创 手写call,apply和bind篇

call的实现 原理:就是把一个要执行的函数,作为this指向的那个上下文的方法 实现:Function.prototype.myCall = function (context, ...args) { // 当上下文传的是一个null时,将上下文表示为window var context = context || window; // 判断类型 if (typeof this !== "function") { throw Error("type error"); }

2024-02-23 13:06:18 425

原创 js简易轮播图

原生js轮播图代码:<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="./animate.j

2020-08-23 15:13:54 206

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除