自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于js中()圆括号的作用

()操作符有两种用法,一是作为圆括号运算符,提升括号内表达式的优先级;二是作为函数调用操作符,用于执行在()操作符之前指向的函数名

2022-11-25 10:11:34 655

转载 浏览器访问网页过程中发生了什么?

在浏览器输入:http://www.baidu.com/,最后,浏览器呈现出相应网页,这个过程究竟发生了什么?

2022-11-09 10:35:51 246

原创 描述cookies,sessionStorage和localStorage的区别

相同点:都是保存在浏览器端,同源共享,即相同域下可以修改读取。

2022-10-31 12:40:58 196

原创 post和get的区别

一、功能不同二、过程不’同三、获取值不同五、安全性不同

2022-10-30 12:04:14 141

原创 react-router-dom v6 重定向

官网搬运:React Router | Migrating from @reach/router[这里是图片001]https://reactrouter.com/docs/en/v6/upgrading/reach#what-about-clicking-links-that-arent-updated。

2022-10-20 14:56:53 406

原创 # React Router 6 快速上手

2. 与React Router 5.x 版本相比,改变了什么? 1. 内置组件的变化:移除`` ,新增 ``等。 2. 语法的变化:`component={About}` 变为 `element={}`等。 5. 新增多个hook:`useParams`、`useNavigate`、`useMatch`等。 7. 官方明确推荐函数式组件了!!!

2022-10-19 16:44:15 188

原创 mobx如何使项目支持装饰器(“@“)

mobx如何使项目支持装饰器("@")装饰器语法是ES7的语法,用于mobx仓库创建

2022-10-16 20:11:58 162

转载 Immutable.js

在redux中,全局state必须是immutable的,这是使用immutable来优化redux的核心

2022-10-16 18:16:12 242

原创 redux持久化

如果正在使用react,请使用PersistGate包装根组件。这将延迟应用程序UI的呈现,直到您的持久状态被检索并保存到redux。注意PersistGate加载道具可以为空,也可以为任何react实例,例如loading={< loading />}基本用法包括将persistReducer和persistStore添加到设置中。每个应用都需要决定它们想要“合并”的状态级别。请阅读状态协调器文档以获得更多信息。1.下载redux-persist结合react-redux使用。

2022-10-11 19:39:02 518

原创 promise方法

all():传入promise对象组成的数组,返回一个promise实例,根据数组中的promise执行的状态结果,执行resolve或reject回调(全fulfilled 执行res,全rejected执行rej)race():传入promise数组,谁执行的最快,则返回谁的状态(fulfilled 或 rejected),执行对应的res或rej回调。后的 promise,并带有一个对象数组,每个对象表示对应的 promise 结果(以在then或者catch使用)。这避免了同样的语句需要在。

2022-10-10 18:42:53 171

原创 Promise链式调用

同步返回值的意思换句话说,如果 then 中的回调返回了一个 promise,那么 then 返回的 promise 会等待这个 promise 被 resolve 后再 resolve。3.resolve()它的作用除了将当前的 promise 由 pending 变为 resolved,还会遍历之前通过 then 给这个 promise 注册的所有回调,将它们依次放入微任务队列中,,由 resolve 将注册的回调放入微任务队列,由事件循环将其取出并执行。还有一个关于执行顺序的题目解析,共同学习。

2022-10-10 15:30:06 731

原创 redux-thunk的实现

thunk

2022-10-10 10:32:38 156

转载 redux核心原理及各API实现

redux的核心原理及API实现

2022-10-03 19:45:38 348

原创 redux的简单例子

redux简单例子,帮助掌握redux使用的目录结构

2022-10-03 19:29:58 177

转载 useMemo和useCallback

用于缓存数据,优化性能;两者接收的参数都是一样的,第一个参数表示一个回调函数,第二个表示依赖的数据。useMemo和useCallback都是reactHook提供的两个。

2022-10-02 16:25:44 85

转载 js闭包实现防抖节流示例

【代码】js闭包实现防抖节流示例。

2022-10-01 08:58:11 301

转载 node服务器搭建流程

依赖项是这个项目关联的模块,把模块关联到依赖项中之后,即使把模块删掉,也可以找回。上述步骤执行完之后会在终端对应的目录下生成一个package.json文件,json文件中有一个依赖项 dependencies。将需要显示在网站上的网页放入punlic目录下,域名没有参数时,默认为index.html 文件。4,新建一个js文件,文件名要于entry point设置的名字一样,默认为index.js。name : 项目名称(小括号中是默认的,文件夹名相同,不能包含大写字母或者汉字)Is this ok?

2022-09-23 14:24:19 2265

原创 虚拟DOM中key和index(需了解diffing算法的逻辑原理)

在页面更新时,会将虚拟DOM的key作为依据进行数据的对比,如果应index作为key,则可能会引发不必要的DOM更新,影响渲染效率;若页面包含输入类的DOM,并且进行了逆序的增删操作,还会造成错误的DOM更新。而使用唯一的标识作为key,则不会出现类似的情况。

2022-08-19 16:57:11 99

原创 函数柯里化

定义:通过函数调用继返回函数的方式,实现多次接收参数并且统一处理的。

2022-08-18 17:05:42 76

转载 VSCode中如何开发uni-app?

因为uni-app项目跟其他前端项目差异较大,我还是比较推荐为uni-app项目单独做个VSCode工作区。对于VSCode工作区概念VSCode工作区指南:回归轻量,打造全能编辑器。或者说,为每个项目单独做一个。...

2022-08-15 10:45:51 18631 2

原创 VUEX的原理

vuex简述

2022-08-10 17:55:41 413

原创 DIFF算法原理

diff算法就是进行虚拟节点对比,并返回一个patch对象,用来存储两个节点不同的地方,最后用patch记录的消息去局部更新Dom。简单来说Diff算法就是在虚拟DOM树从上至下进行同层比对,如果上层已经不同了,那么下面的DOM全部重新渲染。这样的好处是算法简单,减少比对次数,加快算法完成速度。...

2022-08-09 19:06:53 4372

原创 对虚拟DOM的理解

本质上讲,虚拟dom是一个js对象,将页面的状态抽象js对象形式,配合不同渲染工具,可跨平台渲染;通过时间触发,将多次dom页面的修改结果一次性更新,减少渲染次数,减少重绘重排,提高性能。。虚拟dom是对dom的抽象,涉及最初目的是为了更好的跨平台,如node.js没有dom,要实现ssr(服务端渲染,在ajax出现之前,都是ssr),就是接住虚拟dom。...

2022-08-09 18:43:01 269

原创 MVC、MVVM、MVP

MVC 中的Controller 只知道 Model 的接口,因此它没有办法控制 View 层的更新,MVP 模式中,View 层的接口暴露给了 Presenter 因此可以在 Presenter 中将 Model 的变化和 View 的变化绑定在一起,以此来实现 View 和 Model 的同步更新。V为view,是视图层,负责显示数据;C是controller,是view和model层之间的枢纽,负责响应操作,当view需要数据,通知model拉取,当model拉取到数据,通知view显示。...

2022-08-09 18:18:24 798

原创 使用Object.defineProperty()进行数据劫持的缺点

对于数组的大部分操作无法拦截,对于通过下标方式修改数组或对象都不能触发重新渲染,只是vue通过重写函数解决了这个问题。而vue3不会有这样的问题,proxy可以监听到任何形式的数据改变,但是时es6的语法,会有兼容问题。...

2022-08-03 22:24:05 770

原创 VUE面试--基本原理

vue实例创建时,vue会遍历data中的属性,用obj.defineproperty或proxy将data属性转化为getter/setter,并且在内部追踪相关依赖,当其被修改或访问时就会通知变化;每一个组件有对应watcher实例,对属性记录依赖,之后当 依赖项setter被调用,就会让watcher重新计算,以此更新组件。...

2022-08-03 22:13:02 111

原创 JS call()、apply()、bind()方法区别

不同的是,call方法只需要将function所需的参数按顺序依次书写即可;而apply方法则需要将所有参数装成一个数组;call方法和apply方法都可以直接调用函数;而bind方法则会返回一个新的函数,需要定义一个变量接受,而后再调用。第一个参数thisArg都是指定的this对象参数,后面的参数则是function函数所需要用到的参数;三个方法都可以改变function函数的this指向;...

2022-07-30 15:48:39 126

转载 原型和原型链

一、前言在js中,原型和原型链是一个很重要的知识点,只有理解了它,我们才能更深刻的理解js,在这里,我们将分成几个部分来逐步讲解。二、构造函数构造函数和普通函数本质上没什么区别,只不过使用了new关键字创建对象的函数,被叫做了构造函数。构造函数的首字母一般是大写,用以区分普通函数,当然不大写也不会有什么错误。function Person(name, age) { this.name = name; this.age = age; this.species =...

2022-05-07 16:44:32 56

空空如也

空空如也

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

TA关注的人

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