自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 关于npm包的版本号相关问题

在安装一些依赖的时候,版本号前面都会带有^或者~的符号,或者不带有符号的情况也是有的。在项目中安装依赖包的版本的时候,需要依赖于package.json中的指定的版本号。如果我们希望项目中的版本跟随依赖包的新版本发布,就可以在版本号前面加上前缀~和^.,这样可以保证项目不会出现大的问题,也能够保证依赖包中的小bug可以得到修复。版本号为*,表示安装最新版本的依赖包,可能有版本不兼容的问题。如果我们想要锁死项目中的版本号,就直接写版本号,不加前缀。^版本更新比较大,容易造成项目代码错误,所以。

2022-11-01 09:36:16 1548 1

原创 React.memo()、useCallback()和useMemo()的用法--性能优化--缓存

React.memo()、 钩子函数useCallback和useMemo对react中的组件、函数、函数执行结果进行了缓存的实现。

2022-10-20 09:35:33 1730

原创 JS——变量、作用域和内存问题

本文内容基本类型和引用类型的值执行环境垃圾收集ECMAScript的变量有两种不同类型的值:基本类型和引用类型。在将一个值赋值给变量时,解析器必须确定这个值是基本类型还是引用类型值。复制变量值复制基本类型的值,会创建一个新值,然后把该值复制到位新变量分配的位置上。复制后,两个变量之间是完全独立的。复制引用类型的值,也会将存储在变量对象值的值复制一份到为新变量分配的空间中,不同的是,这个值实际上是一个指针(地址,引用),这个指针指向存储在堆中的一个对象。复制后,两个变量实际上将引用同一个对象

2022-05-13 11:21:13 253

原创 React native入门一

RN环境安装安装依赖要在开发运行在Android上面的应用,必须安装的依赖有:Node、Python2、JDK和Android Studio、模拟器。创建RN新项目你可以使用–version参数(注意是两个杠)创建指定版本的项目。注意版本号必须精确到两个小数点。npx react-native init AwesomeProject --version 0.66.0编译并运行RN应用cd AwesomeProjectyarn android如果配置没有问题,我们可以看到应用自动安装到设

2022-04-22 16:06:46 1017

原创 Git学习

Git的相关学习推荐廖雪峰的Git学习网站:https://www.liaoxuefeng.com/wiki/896043488029600git是什么?git是一个先进的分布式版本控制系统,一个软件,不仅能够自动帮我们记录每次文件的改动,还可以让同事协作编辑。首先是安装git软件安装完成后,还需要最后一步设置,在命令行输入:$ git config --global user.name "Your Name"$ git config --global user.email "email@ex

2022-04-20 21:29:15 314

原创 前端APP开发

APP开发概述1、WebAppWebApp开发,严格来说并不是一个APP软件,只是一个Web型的微网站。优点:开发时间短、兼容性强、方便系统移植。缺点:必须有网络的支持,用户体验相对差,对于手机的一些原生底层功能不能实现。2、NativeAppNative App就是一个原生的App软件,主要是通过Java或者其他代码来实现原生的Android Q或者iOS手机的App软件。优点:原生App、用户体验非常好、可以调用手机的底层组件。缺点:开发时间长、兼容性差、必须掌握Java等编程语言。3

2022-04-18 21:32:04 8355

原创 JSONP

下面是Ajax的JSONP的一个逻辑过程原理:JSONP的原理:动态创建script,然后借助于script发送跨域请求,服务端返回的是一个JS语句,服务器端将要返回的数据填充进JS语句里面返回,script收到JS语句后执行JS语句。...

2021-07-16 20:02:45 106

原创 HTML易混淆点和面试题目

HTML:Hyper Text Markup Language,超文本标记语言。是一套标记标签,描述网页。Web 浏览器的作用是读取 HTML 文档,并以网页的形式显示出它们。1、 <h1> - <h6>,SEO2、HTML属性为 HTML 元素提供附加信息,属性提供了有关 HTML 元素的更多的信息。属性总是以名称/值对的形式出现,比如:name=“value”。属性总是在 HTML 元素的开始标签中规定。3、meta标签4、<!DOCTYPE> 声明We

2021-07-16 20:02:31 126

原创 Node从入门到放弃(一)

一、使用Node创建一个Hello world的服务器1、编写如下代码:var http=require('http');//下面的代码就创建了一个可以访问的服务器http.createServer(function (request,response) { //response.writeHead() 函数发送一个HTTP状态200和HTTP头的内容类型(content-type) response.writeHead(200,{"Content-Type":"text/plain"

2021-07-16 20:02:00 105

原创 微信小程序(一)

2021-07-16 20:01:42 88

原创 移动端页面的开发

一、移动端页面移动端的浏览器大部分都是采用的webkit内核为主,可以放心的使用HTML5和CSS3.二、流式布局为了保护流式布局的显示的内容,我们不能让页面无限的扩大或者缩小,所以我们可以设置一个最大宽度和最小宽度。流式布局我们只管宽度就可以了。三、flex布局相比于传统的布局,flex布局不需要浮动,不需要清除浮动。只用写一句话就可以让盒子平均分配和居中对齐。一般称flex布局为弹性布局,任何一个容器都可以指定为弹性布局,不管是行内元素还是块级元素,在flex眼中都是一样的,都可

2021-07-16 20:00:55 352

原创 一日算法01

day01–冒泡排序

2021-07-16 20:00:20 92

原创 React03

React脚手架快速方便的编写基于某种技术的应用。首先全局安装 create-react-app库,npm i -g create-react-app。然后使用create-react-app 项目名生成创建一个react应用。然后cd 到项目中,进入项目中,开启服务。npm start命令:开启开发者的服务器。npm build:将写完的项目最后进行打包。React脚手架项目结构过程:应用从index.js文件开始,在文件中引入App组件和依赖,进行组件的渲染,找到index.html

2021-07-16 19:59:42 84

原创 window命令行基本操作

2021-07-16 19:59:13 397

原创 二叉树知识点

树树的root节点就可以代表整棵树,因为通过root节点的左右子树,就可以找到其他的节点。

2021-07-16 19:58:35 84

原创 关于BFC

关于BFCBFC:块级格式化上下文。BFC是一个完全独立的空间,让空间里的子元素不会影响到外面的布局,页面中的一个隔离的独立容器。BFC布局与普通文档流布局区别普通文档流布局:1、浮动的元素不会被父级计算高度;2、非浮动元素会覆盖浮动元素;3、嵌套的两个盒子的margin会塌陷;4、上下相邻的margin会合并重叠;BFC布局规则:1、浮动的元素会被父级计算高度(父级元素触发了BFC),计算BFC的高度时,浮动元素也参与计算;2、非浮动的元素不会覆盖浮动元素(非浮动元素触发了BFC);

2021-07-06 19:33:33 116

原创 CSS实现三角形和梯形

利用border-color来实现三角形或者梯形等<style> .box{ width: 200px; height: 200px; border: 100px solid; border-color: red black blue purple; }</style>实现效果:<style> .box1{

2021-06-02 10:28:59 134

原创 符号表知识点

符号表符号表中,键具有唯一性。

2021-05-27 20:50:59 89

原创 队列知识点

队列(queue)

2021-05-27 19:22:50 149

原创 栈的知识点

栈Java中栈Stack的基本使用和应用括号匹配问题1、创建栈对象,用来存储左括号2、从左往右遍历字符串3、判断当前字符是否为左括号,如果是,则把字符放入到栈中4、继续判断当前字符是否是右括号,如果是,则从栈中弹出一个左括号,并判断弹出的结果是否为null,如果为null证明没有匹配的左括号,如果不为null,则证明有匹配的左括号5、判断栈中还有没有剩余的左括号,如果有,则证明括号不匹配逆波兰表达式问题...

2021-05-27 08:58:41 260

原创 链表的知识点和题解

链表单向链表链表的头结点的数据域不存储数据,指针域指向第一个真正存储数据的结点。链表的入口是头结点,主要是用来找到这条链表。Java中使用LinkedList来进行链表的操作LinkedList是通过双向链表实现的,而双向链表就是通过Node类来体现的,类中通过item变量保存了当前节点的值,通过next变量指向下一个节点,通过prev变量指向上一个节点。LinkedList的用法1、定义一个LinkedList2、LinkedList常用方法双向链表

2021-05-26 20:33:03 149 1

原创 线性表

线性表顺序表这里我们需要掌握 Java 中的 ArrayList 的使用。

2021-05-25 19:30:43 51

原创 递归

递归定义:定义方法时,在方法内部调用方法本身,称之为递归。在某个条件满足的情况下,我不再往下再调用了。(结束条件)

2021-05-25 18:53:19 54

原创 排序

冒泡排序它为什么叫冒泡排序?我们需要通过冒泡的过程,使合适的元素放在合适的位置。即让最大的元素放在最后面的位置,次元素放在倒数第二个位置。。。。依次进行,就像冒泡一样。已经冒泡出去的元素就不再进行排序了,因为它们已经放在了合适的位置,对剩余的元素进行冒泡。原理:每一次冒泡的过程都需要对相邻的元素进行比较。时间复杂度:O(n^2)选择排序我们需要在序列中选出合适的元素,然后把它放在合适的位置。找出待排序元素中最小元素的索引,然后进行交换。即我们需要在序列中选出最小的元素,把它放在合适的位

2021-05-25 18:41:15 50

原创 JavaScript的预编译+this指向+拷贝

JavaScript运行三部曲脚本执行js引擎都做了什么呢?语法分析预编译解释执行预编译在作用域的创建阶段,也被称为预编译阶段。预编译的时候做了哪些事情?在作用域的创建阶段,作用域分为全局作用域和函数作用域。在函数作用域创建阶段,与之对应的有一个JS的变量对象产生,叫做AO对象,供JS引擎自己去访问的 我们是访问不到的。预编译的四个步骤:1、创建了AO(Active Object)活动对象2、找形参和变量的声明 作为AO对象的属性名 值是undefined3、实参和形参相统一,

2021-04-06 19:19:29 142

原创 清除float浮动的三种常见方式

一、为float元素后的元素添加 clear 属性浮动高度塌陷下的副作用的展示:添加clear属性之后的显示:二、利用伪元素并使用clear属性有时我们会遇到上图的情况,float 元素后没有其他元素了,这时该怎么办?固然我们可以在其后添加一个空div,然后利用clear:both一样解决问题,但这种方式并不优雅,伪元素这时候就派上用场了,我们可以写一个.clearfix 工具样式,当给需要清除浮动时,就为其加上这个类。清除浮动之前的显示:清除浮动之后的显示:三、将父元素的over

2021-04-02 14:02:26 2422

原创 CSS的div水平垂直居中

已知高度实现div的水平垂直居中一、使用flex实现已知高度的水平垂直居中显示效果图:二、position实现已知高度的水平垂直居中(margin 设置为其高度的负一半)三、position已知高度实现水平垂直居中(margin 设置为auto)未知高度实现div的水平垂直居中position transform实现未知高度的水平垂直居中...

2021-04-01 21:19:29 72

原创 CommonJS和ES6的导入导出

JavaScript的模块的导入导出模块化的好处:1、避免命名冲突(减少命名空间污染)2、更好的分离,按需加载3、更高复用性4、高可维护性模块化规范CommonJS每一个JS文件都可以当做一个模块。在服务器端:模块的加载是同步加载的,即我们需要等待加载模块的时间。在浏览器端:浏览器是不认识CommonJS语法的,所以我们需要提前编译打包为浏览器认识的语法。基本语法:暴露模块:有两种方式:module.exports=value;exports.xxx=value;暴露的模块本质

2021-04-01 16:33:01 344

原创 React02

React生命周期生命周期回调函数===生命周期钩子函数生命周期的三个阶段(旧)生命周期的三个阶段(新)在新版本的React可以使用旧版本的生命周期函数。新版本的生命周期和旧的相比,废除了3个,新增了两个生命周期函数。虚拟DOM和DOM Diffing算法比较的是新虚拟DOM和旧虚拟DOM,Diffing指的就是新旧虚拟DOM的different。经典面试题:react/vue中的key有什么作用?(key的内部原理是什么?)为什么遍历列表时,key最好不要用index?虚拟

2021-03-18 14:06:35 130

原创 React01

React用于构建用户界面的JavaScript库,是一个将数据渲染为HTML视图的开源JavaScript库,就是拿到数据进行视图的一个渲染。React由Facebook开发的开源项目。在我们使用原生的DOM-API和JQuery来操作元素的时候,每一次操作都可能会引起页面的重绘绘制重排,效率极低。在我们原生的JavaScript和JQuery中,都是直接对DOM进行真正意义上的操作,但是React和Vue提出来了一个虚拟DOM的概念,即使用虚拟DOM和Diffing算法,可以减少和真实DOM的

2021-03-16 20:08:34 184 1

原创 SEO网站优化

SEO:Search Engine Optimization,搜索引擎优化。在互联网上,让自己的产品信息更多更快的进行曝光,让用户更加容易的获取到我们网站的信息。SEO就是用来哦获取更多流量的,增加曝光度网站爬虫的管理规则:链接长度:链接越长,蜘蛛越难爬取,链接中出现中文,越难爬取。链接为爬虫的通道。每一个链接都是蜘蛛的入口。网站识别回访:网站打开速度越快,越容易爬;识别难度,图片很难识别,视频不识别。有效收录:有价值。爬虫越多,越容易收录。想要网站蜘蛛越多,就增加网站中链接的数量。

2021-03-12 14:19:25 360

原创 Git版本管理

版本控制可以让我们在开发的过程中 吃后悔药 。即进行代码文件的版本回退。集中式和分布式版本控制集中式(svn):要一直往集中的服务器上进行提交,不管那一方出问题都会出问题。分布式(Git):不管是谁的处问题了,都不会影响整体,大家都有一个版本库,在各自的版本库上进行回退提交,最后将版本提交到服务器上。去git官网下载git软件安装成功之后,我们可以检测git是否安装成功。在命令行输入 git --version。配置作者信息第一个要配置的是你个人的用户名称和电子邮件地址。这个配置的是全局

2021-03-11 16:54:31 199

原创 Vue-cli的基本使用

2021-02-01 21:30:01 69

原创 Vue生命周期

vue的生命周期创建期间

2021-02-01 15:31:47 261

原创 Vue的核心插件的使用

VueX的基本使用第一步:第二步:第三步:第四步:VueRouter的基本使用Vue Router是用来切换组件的显示的。第一步:第二步:第三步:第四步:第五步:第六步:

2021-02-01 14:35:38 113

原创 Vue(二)组件化

Vue的两大核心:一、数据驱动界面改变 二、组件化

2021-02-01 09:28:52 60

原创 Vue(一)指令语法

框架------------节省时间。核心概念:通过数据驱动来进行界面的更新,无需操作DOM来更新界面。Vue的两个核心概念:MVVM设计模式Vue中数据的单向传递,我们把“数据”交给“Vue实例对象”,Vue实例对象将数据交给“界面”。Model====》View Model====》ViewVue中数据的双向绑定,只存在于input textarea select标签中。v-cloak指令:让数据还没有渲染到页面之前,该区域不显示出来,直到数据成功渲染后,才显示出来。插

2021-01-28 21:31:24 237

原创 Node开发(模块开发)

DOM和BOM是浏览器为了能够实验ECMAScript语法而提供的API接口。同理,Node.js是由ECMAScript及Node环境提供的一些附加API组成,包括文件、网络、路径等等一些更加强大的API。所有的ECMAScript语法都可以在Node环境中使用。JavaScript开发的弊端:1、文件依赖,文件与文件之间的依赖不明确。文件的依赖关系需要人为的来进行维护。采用模块化,我们就可以一眼就看出文件之间的依赖关系,而不用人为的去进行分析。2、命名冲突,导致代码的覆盖问题。在Java

2021-01-27 15:13:26 276

原创 PC端网页特效

2021-01-27 09:04:39 59

原创 BOM浏览器事件

document是包含于window里面的,document是window的一个属性。全局变量就会自动变成window对象的一个属性。只要浏览器窗口的大小发生变化,就会触发这个事件。到了定时的时间之后就执行这个回调函数。这个定时器里面的回调函数可以调用很多次。即先把同步中所有的任务执行完毕后,再去执行任务队列中的异步任务。...

2021-01-26 16:27:07 114

空空如也

空空如也

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

TA关注的人

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