自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Kodomo

Kodomo

  • 博客(38)
  • 收藏
  • 关注

原创 Buffer的基础使用

一、什么是BufferBuffer是一个类似于数组的对象,用于表示固定长度的字节序列。Buffer本质是一段内存空间,专门用来处理二进制数据。Buffer大小固定且无法调整。Buffer性能较好,可以直接对计算机内存进行操作。Buffer每个二进制位元素的大小为1字节(byte),二进制为的元素大小为1bit。

2024-01-07 15:02:04 607

原创 React中ref的基本使用

一、ref为字符串(官方不推荐,可能在后续版本废弃)二、ref为回调函数三、React 16.3 版本引入的React.createRef()API

2023-03-25 17:13:25 127

原创 React中props的使用

一、props的基础使用二、对传输的数据进行限制(propTypes)

2023-03-25 16:46:10 179

原创 React中render方法调用了几次?

调用了1+N次1.页面初始化的时候调用一次render方法2.页面状态发生改变时.重新调用render方法来生成一个新的虚拟DOM3.通过diff算法来对比新新旧虚拟DOM之间的差别,从而进行合并4.将对比合并过后的虚拟DOM,转换为真实的DOM,挂载到页面的指定位置

2023-03-25 15:25:10 442

原创 执行了ReactDom.render()方法后,发生了什么?

一、函数式组件1.React解析了组件标签,找到了对应的组件2.发现这个组件是一个函数定义的,随后调用该函数,生成了一个虚拟DOM3.最后将虚拟DOM转换为真实DOM,呈现在页面中二、类式组件1.React解析了组件标签,找到了对应的组件2.发现这个组件是一个类定义的,随后new出来一个实例对象,并通过该实例调用原型上的render()方法3.将render()返回的内容生成了一个虚拟DOM4.最后将虚拟DOM转化为真实DOM,呈现在页面中

2023-03-25 15:23:48 152

原创 React创建虚拟DOM的两种方式

一、JS方式创建虚拟DOM二、jsx创建虚拟DOM

2023-03-25 12:48:43 378

原创 React基础阶段

一、什么是React用于构建用户界面的 JavaScript 库通常构建页面都需要经历三步①通过发送Ajax拿到远程数据②把数据挂载到DOM上.③渲染页面但是React它只执行后两步,它不管你数据从哪来,它只关注于你怎么构建页面(也就是只关注你怎么把数据渲染到页面上)

2023-03-25 11:47:10 37

原创 Express简介

一、什么是ExpressExpress是基于Node.js平台,快速、开放、极简的Web开发框架通俗的理解:Express的作用和Node.js内置的http模块类似,是专门用来创建Web服务器的.Express的本质:就是一个npm上的第三方包,提供了快速创建Web服务器的便捷方法Express的中文官网:https://www.expressjs.com.cn/

2023-02-28 10:49:48 1192

原创 模块化的基本概念

1.module.exports对象在自定义模块中,可以使用module.exports对象,将模块内的成员共享出去,供外界使用。外界用require()方法导入自定义模块时,得到的就是module.export所指向的对象。2.exports对象由于module.exports单词写起来比较复杂,为了简化向外共享成员的代码,Node提供了exports对象,默认情况下,exports和module.exports指向同一个对象,最终共享的结果,还是以module.exports指向的对象为准

2023-02-28 09:20:18 313

原创 Node.js中的http模块

1.req请求对象 只要服务器接收到了客户端的请求,就会调用通过server.on()为服务器绑定的request事件处理函数.如果想在事件处理函数中,访问与客户端相关的数据或属性,可以使用如下的方式: //req是请求对象,它包含了与客户端相关的数据和属性,例如: //req.url 是客户端请求的URL地址 //req.method是客户端的method请求类型2.res响应对象 在服务器的request事件处理函数中,如果想访问与服务器

2023-02-27 22:19:00 138

原创 Node.js中的path路径模块

①path.join //用来将多个路径片段拼接成一个完整的路径字符串②path.basename() //用来从路径字符串中,将文件名解析出来,经常用这个方法获取③path.extname() //可以获取路径中的扩展名部分④__dirname 表示当前文件所处的目录,常用来拼接路径(提供的是绝对路径)

2023-02-27 20:34:26 172

原创 Node.js中的fs文件系统模块

①fs.readFile() 用来读取指定文件中的内容参数1:必选参数,字符串,表示文件的路径参数2:可选参数,表示以什么编码格式来读取文件参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果

2023-02-27 20:04:38 91

原创 Node.js初级阶段基础概念

一、什么是Node.jsNode是一个基于Chrome V8引擎的JavaScript运行环境(浏览器JavaScript前端的运行环境,Node.js是JavaScript后端的运行环境)二、Node.js可以做什么①基于Express框架(https://www.expressjs.com.cn/),可以快速构建Web应用②基于Electron框架(https://www.electronjs.org/),可以构建跨平台的桌面应用

2023-02-27 19:30:20 63

原创 如何解决Git合并分支造成的冲突

(1)在远程仓库里合并的时候解决1.先将自己的分支中修改的内容放到本地仓库 gita add . //添加到暂存区git commit -m '提交信息' //提交到本地仓库2.把本地仓库的内容push到远程仓库 git push origin '远程仓库地址'3.在远程仓库进行合并操作,提出合并申请

2023-02-22 11:24:55 3715

原创 集中式版本控制和分布式版本控制

一、什么是集中式版本控制 集中式版本控制系统诸如CVS,SVN等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。优点:这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么,而管理员可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易缺点:这么做显而易见缺点是中央服务器的单点故障,如

2023-02-20 23:24:03 606

原创 Git分支基本概念

一、什么是分支在版本控制过程中,有时候需要同时推进多个任务,那我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候们不会影响主线分支的运行。(分支底层其实也是指针的引用)

2023-02-19 23:22:13 125

原创 Git的基本命令和操作

一、初始化本地库(你要用Git管理这个目录,首先要让git获取这个目录的管理权,所以要先初始化)git init 二、设置用户签名 (后期在提交的时候可以区分不同开发人员的身份)git config user.name "你的姓名"git config user.email "你的邮箱"三、 查看本地库状态git status

2023-02-19 23:14:45 81

原创 Git概念初级阶段

一、什么是GitGit是一个免费的,开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目Git易于学习,占地面积小,性能较快.它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性.

2023-02-17 19:40:16 72

原创 Vue2项目后台管理重构为Vue3的流程与总结

Vue2后台管理系统重构为V3的流程

2023-02-16 18:34:51 1354

原创 Vue 中指令有哪些

v-show 根据表达式真假,切换元素的 display。v-clock 这个指令保持在元素上知道关联实例结束编译。v-if v-else v-else-if 条件渲染。v-text 更新元素的 textcontent。v-model:表单控件或者组件上创建双向绑定。v-html 更新元素的 innerhtml。v-pre 跳过这个元素和子元素的编译过程。v-for:循环数组,对象,字符串,数字。v-bind:动态绑定一个或者多个属性。v-once 只渲染一次。v-on:绑定事件监听。

2022-12-02 17:30:22 359

原创 开发环境和生产环境

1、开发环境2、测试环境3、回归环境4、预发布环境5、生产环境

2022-11-25 15:21:04 190

原创 MVVM模式的优点

2、可重⽤性:你可以把⼀些视图逻辑放在⼀个ViewModel⾥⾯,让很多 view 重⽤这段视图逻辑。3、独⽴开发:开发⼈员可以专注于业务逻辑和数据的开发(ViewModel),设计⼈员可以专注于⻚⾯设计。1、低耦合:视图(View)可以独⽴于 Model 变化和修改,⼀个 ViewModel 可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。4、可测试:界⾯素来是⽐较难于测试的,⽽现在测试可以针对ViewModel来写。

2022-11-24 22:29:17 727

原创 Vue中的Mixin混入

什么是Mixin?官方解释:Mixin(混入)提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项民间解释:将组件的公共逻辑或者配置提取出来,哪个组件需要用到时,直接将提取的这部分混入到组件内部即可。这样既可以减少代码冗余度,也可以让后期维护起来更加容易。这里需要注意的是:提取的是逻辑或配置,而不是HTML代码和CSS代码。其实大家也可以换一种想法,mixin就是组件中的组件,Vu

2022-11-24 19:29:43 254

原创 什么是插槽?

定义:插槽是vue实现一套内容分发的api,将插槽元素作为分发内容的出口。具名:需要使用多个插槽时,使用v-slot对name进行区分使用。使用 : 子组件复用时需要使用定制重复内容的时候。作用域:当父组件需要使用子组件内数据时。分类:匿名插槽,具名插槽,作用域插槽。匿名:默认插槽,当只有一条内容时。

2022-11-22 19:04:43 190

原创 Promise.all()、Promise.race()的区别

两者都是可以同时调用多个promise实现,Promise.all可以将多个实例组装成一个新的实例,成功的时候返回一个成功数组,失败的时候则返回最先被reject失败状态的值;其中有一个实例不成功则返回reject.race()是赛跑的意思,也就是说Promise.race([p1, p2, p3])里面的结果哪个获取的快,就返回哪个结果,不管结果本身是成功还是失败。

2022-11-21 19:32:55 131

原创 什么是虚拟DOM和diff算法?

一、什么是虚拟DOM虚拟DOM其实就是相对于浏览器的真实DOM所渲染出来的一个用来描述真实DOM结构的JS对象

2022-11-19 14:34:57 638

原创 JS数据类型有几种?它们之间的区别是什么?

这种类型的对象永不相等,即始创建的时候传入相同的值,可以解决属性名冲突的问题,做为标记。是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)。存储具体数值和存储着内存的引用地址。的时候,我们认知的数据类型确实是。基本数据类型和引用数据类型。等(这三种比较常用)。他们之间最重要的区别是。数据类型:其中包含了。

2022-11-17 19:09:00 181

原创 浅谈Extends继承和ES5核心区别

1.ES5的继承实质上是先创建子类的实例对象,然后再将父类的方法添加到this上(Parent.apply(this))2.ES6的继承机制完全不同,实质上是先创建父类的实例对象this(所以必须先调用父类的super()方法),然后再用子类的构造函数修改this。3.ES5的继承时通过原型或构造函数机制来实现。4.ES6通过class关键字定义类,里面有构造方法,类之间通过extends关键字实现继承。子类必须在constructor方法中调用super方法,否则新建实例报错。因为子类没有自己

2022-11-16 16:59:14 152

原创 Vue加key值的作用

2、vue会尽可能的高效的渲染元素,通常恢复已有的元素而不是从头开始进行渲染,因此使用key 值可以提高渲染效率,同理,改变某一个元素的key值会使该元素重新被渲染。1、主要是用在vue的虚拟Dom算法,在新旧nodes对比时辨识VNodes,相当于唯一标识ID,

2022-11-16 08:14:13 442

原创 CSS选择器有哪几种

1.基本选择器2.层级选择器3.属性选择器4.组合选择器5.伪类选择器

2022-11-13 19:42:51 171

原创 JS的数组操作方法

1.Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。2.Array.pop(),删除并返回数组的最后一个元素,若该数组为空,则返回undefined。原数组改变。3.Array.unshift(),向数组的开头添加一个或多个元素,并返回新的数组长度。原数组改变。

2022-11-11 16:45:32 230

原创 浅谈Set和Map的区别

1. Map是键值对,Set是值的集合,当然键和值可以是任何的值;2. Map可以通过get方法获取值,而set不能因为它只有值;3. 都能通过迭代器进行for...of遍历;4. Set的值是唯一的可以做数组去重,Map由于没有格式限制,可以做数据存储5. map和set都是stl中的关联容器,map以键值对的形式存储,key=value组成pair,是一组映射关系。set只有值,可以认为只有一个数据,并且set中元素不可以重复且自动排序。

2022-11-10 19:31:52 4890

原创 浅谈SPA单页面应用

SPA单页面应用

2022-11-08 20:12:56 74

原创 浅谈JS本地存储的三种方法及区别与特点

是一种永久存储,会一直将数据存储在客户端的储存方式,即使关闭了浏览器,下次开的时候仍然可以看到之前存储的未主动清除的数据(即便是杀毒软件或者浏览器自带的清除功能,也不能将localStorage存储的数据清除掉)是存储在用户计算机上的小文件,保存特定客户端和网站的适量数据,并可以由Web服务器或客户端浏览器访问,允许服务器提供针对特定用户定制的页面,或者页面本身可以包含一些知道cookie中的数据的脚本。兼容所有的浏览器(本地cookie谷歌不支持),storage不支持IE6~8;

2022-11-08 11:15:22 571

原创 深拷贝与浅拷贝区别

深拷贝在计算机中开辟了一块内存地址用于存放复制的对象,而浅拷贝仅仅是指向被拷贝的内存地址,如果原地址中对象被改变了,那么浅拷贝出来的对象也会相应改变。简单来说: 深拷贝与浅拷贝,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,如果B没变,那就是深拷贝.方法可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。进行的是浅拷贝,拷贝的是对象的属性的引用,而不是对象本身。如果出现多层对象嵌套的情况,可以写一个函数实现深拷贝。一、什么是深拷贝和浅拷贝。

2022-11-07 13:21:49 315

原创 回流和重绘,防抖和节流,内存泄漏和内存溢出

回流,重绘,防抖,节流,内存泄漏和内存溢出

2022-11-01 17:56:16 156

原创 嵌套路由的基本使用

嵌套路由的基本使用

2022-09-12 16:39:05 434

原创 Vue基础阶段

Vue初级阶段的基本使用,指令(v-xxx),computed(计算属性),watch(监听属性),filters(过滤器)

2022-08-31 18:41:49 206 1

空空如也

空空如也

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

TA关注的人

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