自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 资源 (6)
  • 收藏
  • 关注

原创 NodeJS之Koa和Express框架的比较小记

一、基本概述Koa框架和Express框架是Node生态圈比较流行的Node Web框架,能够利用这两个框架快速建立web应用。那koa和express这两个框架有什么区别呢?二、具体比较1、框架体量:Express框架集成了路由、静态文件功能模块,而Koa框架只提供了web服务,所以Koa相对于Express更轻量级;实现功能点:基本的路由、静态文件功能的Web服务//Koa版本:利用Koa框架实现路由、静态文件、web服务需要额外引入第三方依赖,Koa框架本身只提供了web服务const K

2020-07-27 23:13:33 849

原创 JS实现继承的几种方式总结小记

基本概要:继承是面向对象语言中最重要的特点之一,“继承”主要为了实现代码的封装、继承、多态这3种特性,以达到复用的目的,而JavaScript语言严格来说不属于面向对象语言,所以无法很好的实现继承的特性。只能一些JS特性原型和原型链来实现继承,几乎所有的继承都是通过原型和原型链展开的;一、原型链继承“原型链继承”通过JS的原型和原型原理来实现继承关系。将父Class中的原型对象拷贝到子Class中的原型对象中;代码如下:function Parent(){ this.name = "test"

2020-07-14 19:26:54 262

原创 NodeJS中模块加载机制小记

一、NodeJS模块基本认识1、模块化概念:NodeJS模块化遵循的是CommonJS规范进行模块化加载,一般在NodeJS中一个JS都是个独立的模块;每个模块都有自己独立的模块作用域,所以不同模块文件有相同的变量不会发生污染问题;基本使用:exports或module.exports属性进行导出;require()方法将模块进行导出;//test.jsconst value = "Hello CommonJS!";module.exports = {"name": value};

2020-07-14 17:25:14 429

原创 JavaScript实现观察者和发布订阅者模式

一、基本概述不管是观察者模式还是发布订阅者模式,参与角色只有两种,只是他们之间沟通机制不一样;观察者模式:观察者模式的两种角色:“观察者和被观察者”,他们之间是直接进行关联,直接通信。所以他们需要知道对方是谁。2. 发布订阅者模式:该模式也有两种角色:“发布者和订阅者”,他们是通过中间层进行相互通信,并将双方关系进行绑定。这两种角色相互不知道对方是谁。总结:观察者模式和发布订阅者作用的目的其实是一样的,只不过他们之间的实现方式不一样。发布订阅者模式相对于观察者模式耦合度更低,因为他们之间不

2020-07-08 19:56:34 605

原创 Web安全策略整理

一、加密策略方式选择:不可逆加密:无法逆向解密的加密方式,目前主流方案是MD5和SHA1加密算法策略;但是存在暴力解密的风险;对称加密:对称加密是双方统一加密规则进行明文加密/解密,AES加密策略就属于对称加密;当不法分子获取到加密规则时,就可以逆向解密的风险极高;(前端依赖包:crypto-js)非对称加密:非对称采用双密钥机制进行加密/解密,由服务器端统一生成公钥/私钥,然后前端通过公钥进行明文加密,服务器端用私钥对密文进行逆向解密。同时每次加密明文生成的密文是不一样的。所以安全性极高;RSA加

2020-05-08 18:57:52 1306

原创 HTTP网络知识总结

1. HTTP基本介绍HTTP协议:是种超文本传输协议(请求/响应协议)。它是建立在TCP上无状态单向链接协议(属于TCP/IP协议族中一员)。它规定客户端发送什么样的数据给服务器端(HTTP请求),并且服务器端需要返回什么样的数据(HTTP响应);注意一个完整的HTTP请求/响应,并不只是通过HTTP协议来实现的。而是由多个协议相互协作实现的;HTTP请求/响应HTTP握手和挥手网...

2019-08-29 13:35:30 398

原创 Nginx服务器基本配置总结(前后分离、解决跨域)

说明:Nginx属于高性能的HTTP反向代理服务器。也可以作为静态资源服务器,相对于Tomcat、IIS有更好的性能。学习Nginx的前端同学可以自己发布自己的前端代码,实现前后分离。同时通过反向代理机制可以很好的解决跨域问题;一、安装Nginx(Linux系统)1. 安装依赖包gcc、pcre-devel、zlib-devel、openssl-devel安装之前先检查Linux系统中是...

2019-08-26 13:41:37 775

原创 Redux异步方案实现

一、不借用第三方库实现Redux异步场景建立:先来个很常见的场景,在Http请求之前我们一般会用loading组件来表示数据正在请求,等Http请求结束就关闭loading。下图所示的是Http请求的3种状态:上述场景如果不使用redux状态管理器,我们会使用react的state或hooks特性来实现;如果使用redux该怎么实现呢?redux是通过dispatch()方法去触发re...

2019-08-23 16:00:07 1314

原创 谈谈JS中异步操作

谈谈JS中异步操作一、基本认识单线程:单线程即是主线程,所有的程序只运行在一条线程上。好比工厂里只有一条流水线A,所有的操作都在这条流水线A上完成,遇到复杂的任务时,就容易堵塞后面的工作。JS就属于这种单线程语言(为了保证JS对DOM操作的一致性)。也由于这种方式遇到耗时操作时,就容易堵塞待执行程序的运行(堵塞性)。示例代码如下:var n=0;for(var i=0;i<10000...

2019-06-11 10:51:03 1080

原创 Vue SSR技术方案落地实现—构建同构应用

Vue SSR技术方案落地实现—构建同构应用一、基本知识扫盲1、何为服务器端渲染?1)、服务器端渲染:这种技术方案在前端领域处于蛮荒时代就已出现,当时的解决方案主要是后台开发通过模板引擎来设计(如:Java Web的JSP);简而言之,就是模板页面在后台获取到数据并填充,然后响应返回模板页面html字符串给浏览器渲染;2、为什么要使用服务器端渲染?1)、优化SEO:它主要解决搜索引擎SE...

2019-06-05 18:48:47 1407

原创 Mysql性能优化之索引

Mysql性能优化之索引一、基本介绍索引:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息(来自百度百科)。通俗讲就是索引类似于书本上的目录,可以快速找到书中的某篇文章。所以索引主要是用来提高检索速度的。1、Mysql性能分析在Mysql中,通过SHOW STATUS LIKE 'value’命令来查看Mysql的性能参数。value值整理列表...

2019-06-03 16:11:30 204

原创 Java枚举知识点总结

基本概念:枚举是JDK1.5出的新特性。它是一种特殊数据类型,能够为一个变量定义一组预定义的常量。变量必须等于为其预定义的值之一。同时在JDK1.6中switch也支持枚举进行逻辑判断。枚举通过enum关键字进行定义。默认都是java.lang.Enum(Enum属于抽象类)的子类。同时枚举类型的每个值都会映射到Enum抽象类中的构造方法。源码如下:public abstract cla...

2019-05-16 18:05:30 360

原创 浏览器DOM渲染解析过程总结

浏览器DOM渲染解析过程总结一、浏览器的主要组件(如下图所示)备注:Interface表示人机交互界面。用户界面(User Interface):是指浏览器功能模块的UI布局。例如:地址栏、前进/后台按钮、收藏夹等。不同浏览器他们的功能模块的UI布局是不一样的。浏览器引擎(Browser engine):在UI界面和渲染引擎之间传递指令;同时操作数据存储(Data Persiste...

2019-05-16 14:16:16 4671

原创 怎样才能构建优秀的React组件?

怎样才能构建优秀的React组件?这个问题在我脑子里转了好几周了,知道组件化的目的是为了降低模块之间的耦合。但是实际开发中总还是会将某些模块进行耦合。这里介绍个人对组件化的理解。有何不妥之处,希望积极指出;什么是组件化?百度百科:组件化是一种高效的处理复杂应用系统,更好的明确功能模块作用的方式。通俗理解:在几年前端开发,应用系统中的功能模块之间是相互依赖、高度耦合。例如:修改A模块...

2019-05-16 14:15:15 181

原创 单页面和多页面应用场景总结

单页面和多页面应用场景总结一、什么是单页面应用?基本概念:在项目应用中,以单个html页面作为外壳页面,并在外壳页面一次性加载项目所依赖的资源(CSS、JS)。项目中其他页面作为页面片段在外壳页面中进行无感切换(例如:利用H5的History监听到URL的变化,对页面片段进行切换(删除和添加))。单页面应用结构图:优点:项目依赖资源共用,页面片段切换流畅(无感)、页面片段可以进行复用,页...

2019-05-10 17:42:37 4081

转载 Redis 数据结构简介

Redis 数据结构简介Redis 可以存储键与5种不同数据结构类型之间的映射,这5种数据结构类型分别为String(字符串)、List(列表)、Set(集合)、Hash(散列)和 Zset(有序集合)。下面来对这5种数据结构类型作简单的介绍:结构类型结构存储的值结构的读写能力String可以是字符串、整数或者浮点数对整个字符串或者字符串的其中一部分执行操作;对象和浮...

2019-04-29 15:41:26 368

原创 SpringMVC响应数据中文乱码解决方案详解

SpringMVC响应数据中文乱码解决方案详解一、中文乱码起源?先看看乱码效果图,如下图所示:上图中“???”就是中文不能正常显示,出现乱码了。为什么会导致中文乱码?打开浏览器的开发者工具,按F12也可以打开;查看response header(响应头) 的Content-Type属性值,如下图所示:原来在springMVC中Content-Type编码值默认是ISO-885...

2019-04-24 19:37:28 9882 6

原创 SpringMVC运行机制详解——学好基本功,走路好轻松

SpringMVC运行机制详解——学好基本功,走路好轻松说明:了解SpringMVC运行机制,有利于加深对SpringMVC框架的理解、在开发过程中能够快速定位到问题所在。同时对搭建SSM项目基础配置更加理解。总之,好处多多;SpringMVC基本概念SpringMVC框架:属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面(来自百度百科)。总而言...

2019-04-23 20:53:23 425

原创 解决Git工具和SourceTree客户端中文乱码问题

问题描述:输入git commit -am "中文字符"命令将暂存区的文件提交至版本库中,备注在sourcetree或者vscode显示中文乱码,如下图所示:解决方案:使用如下命令,设置UTF-8编码,即可解决:git config --global i18n.logoutputencoding utf-8git config --global gui.encoding utf-8...

2019-04-19 17:46:36 2637

原创 FlexBox弹性布局总结

FlexBox弹性布局总结对于HTML布局、CSS样式是我们前端开发必备技能之一;之前通过传统布局的方式(display+position+float等CSS属性控制)对HTML页面进行布局,但是由于传统方式布局效率低,故W3C提出新的布局方案——弹性布局(FlexBox布局);浅谈盒子模型理解盒子模型是学好布局的重要环节。怎样计算盒子大小。目前有两种版本计算盒子大小:W3C标准(主流浏...

2019-04-18 21:39:08 253

原创 超详细配置ReactNativeh环境—学习RN配置这篇足以

超详细配置ReactNativeh环境—学习RN配置这篇足以以下针对于Window系统平台第一阶段说明:Node 的版本必须高于 8.3,Python 的版本必须为 2.x(不支持 3.x),而 JDK 的版本必须是 1.8(目前不支持 1.9 及更高版本)。安装完 Node 后建议设置 npm 镜像以加速后面的过程(或使用科学上网工具);来自 https://reactnative.cn...

2019-04-14 07:58:27 1470

原创 Java面向对象三大特性、抽象和接口总结

Java面向对象三大特性、抽象和接口总结一、面向对象三大特性面向对象语言:是一种以对象形式作为基本程序结构 的设计语言。也就是用语言描述问题是在对象形式上来建立的。它具有封装性、继承性和多态性这3大特性;而对象的实现是通过实例化class类实现的;Java就属于面向对象语言的一种;封装性:封装性起到保护类的作用;主要将类中的某些信息进行隐藏(private),防止其他类直接调用或修改,...

2019-04-11 20:58:36 347

原创 Redux知识总结一(一篇就能搞明白redux的用法)

Redux知识总结一(一篇就能搞明白redux的用法)一、什么是Redux?官网:Redux 是 JavaScript应用的状态容器,提供可预测化的状态管理;Javascript应用:是指任何Javascript构建的项目,而不是仅仅是React框架构建的项目,当然他们搭配用起来更加顺手;状态容器:react项目中的state抽离出来集中在对象树状结构中store(状态容器),一个项目只...

2019-04-02 15:59:32 1434

原创 Git版本控制总结——使用Git只要这篇就够了

**说明:**以下对Git的介绍只针对于Window系统,Linux和Mac系统暂不介绍;Git是什么?1.什么是版本控制?版本控制是指对若干个文件内容进行修改时,可以对修改的文件进行历史查阅和修订的控制系统;例如:在word中对内容进行修改之后,可以通过撤销的操作恢复之前的状态;而版本控制就像增强版的word,它可以回退到某个时刻的内容,并且可以比较当前时刻和某一时刻修改的内容差异等...

2019-04-01 11:29:19 1721

原创 Python3.x整体知识介绍—撩妹大法

Python3.x整体知识介绍—撩妹大法说明:下面关于Python的介绍都是基于window系统一.什么是Python简介:Python是一种解释型,动态数据类型,面向对象高级设计语言;Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python 源代码同样遵循 GPL(GNU General Public Lice...

2019-03-09 19:04:34 1682

原创 JavaScript常用设计模式

JavaScript常用设计模式开放封闭原则:开放性:当有新需求时,可以对现有代码进行扩展,在不影响现有功能的前提下,来实现新需求;封闭性:模块的源代码不能被修改,神圣不可侵犯(前提是功能是完整无误的,修复bug不算破坏封闭性原则);内聚性/耦合性内聚性:表示单个模块内功能性强度性的度量;若一个模块各个元素之间联系很强,那么该模块就具有高内聚,相反就是低内聚;耦合性:表示...

2019-03-04 09:32:53 99

原创 JavaScript编程知识总结

JavaScript编程知识总结:解释型语言和编译型语言计算机语言概念计算机只能识别机器语言,而我们平常遇到的编程语言一般都是高级语言;计算机是不能直接识别的,所以需要编译器对高级语言进行解释成机器语言。这样计算机才能执行高级语言的指令;解释型语言:在程序运行时进行代码解释,它不需要编译。有专门的解释器,所以只要有相应的解释器可以在任何系统上运行,也就是跨平台性;例如解释型Java,...

2019-02-25 10:12:33 133

原创 JS高频功能优化之函数节流和函数防抖

JS高频功能优化之函数节流和函数防抖一.基本概念什么是高频功能?“高频”望文取义就是“很快的”;在JavaScript中,可以理解为对一个函数/事件触发次数很多的,很快的;典型的例子就是JS中鼠标滑轮事件,鼠标移动事件的触发和输入框联想查询功能实现等;JS中为什么要减少高频的发生呢?一句话总结:“减少高频,节约资源,防止体验差”;节约开销:输入框的联想搜索功能,百度搜索就有联想搜...

2019-02-20 15:13:20 257

原创 TypeScript在VSCode编辑器中环境搭建

TypeScript在VSCode编辑器中环境搭建Typescript是微软开发的开源编程语言,也属于Javascript超集;也就是在Javascript语言添加了两大重要的特性:可选的静态类型和基于类的面向对象编程目前在浏览器环境和nodejs无法直接运行typescript语言,需要有typescript编译器将其转换成js语言才能运行;注意typescript程序文件的后缀是.ts...

2019-02-15 11:18:52 4125

原创 Android开发四大组件之广播篇(BroadcastReciver)

Android开发四大组件之广播篇(BroadcastReciver)一.什么是广播?广播(广而播之):在90年代的贫困山村里,广播成了村村必备之良品;村书记一有啥事,就通过挂在村头的大喇叭发言,通知村里的小老百姓;拆分出来这广播的步骤就这两种,如下图所示;注意这里的小老百姓(广播接收者)是指在村里的,可以接收到村里广播的有效百姓;二.Android中广播1.Android...

2019-02-15 09:42:36 711

原创 React路由基本用法

React路由基本用法1.React Router4.0基本概述:React Router4.0(以下简称 RR4)遵循React的设计理念,即万物皆组件。所以 RR4 只是一堆 提供了导航功能的组件(还有若干对象和方法),具有声明式(声明式编程简单来讲就是你只需要关心做什么,而无需关心如何去做,可组合性的特点。RR4 采用单代码仓库模型架构(monorepo),这意味者这个仓库里面有...

2019-01-28 10:39:53 9220

原创 Canvas学习总结

Canvas学习总结一.什么是CanvasCanvas属于HTML5新特性API,主要增强在浏览器绘制图像功能;当然一些简单的矢量图我们可以通过html标签进行拼接组装,也可以绘制SVG图像;但是对于位图(.jpg/.png)等格式的图片处理canvas有着不可比拟的优势;二.canvas的基本实现1.怎样定义canvascanvas的实现其实是通过<canvas...

2019-01-25 17:23:01 820

原创 MockServer实现前后数据交互分离

MockServer实现前后数据交互分离在与后台进行数据交互的过程中,作为前端开发者有个深深的痛点,当我们与后台沟通好了前后数据交互的规则后,就开始等后台完全开发好接口我们才能进一步工作;说白了工作发生阻塞了,严重影响工作效率;通过(json-server+mock.js+proxy),其中proxy表示代理,通过json-server工具将json数据以接口的形式调用,其中json数据是...

2019-01-25 16:50:26 628

原创 Android开发之Handler消息传递机制总结

Android开发之Handler消息传递机制总结Handler消息传递机制:主要用于对异步任务的消息处理机制;Handler工作原理:当任务发出消息时,会将所发的消息压入消息队列(队列:先进先出)中,然后通过轮询的方式对队列里面的消息逐一取出,并在handleMessage事件中对取出的消息进行监听,然后做出相应的处理, 这种机制通常用来处理相对耗时比较长的操作。如下图所示:Ha...

2019-01-23 14:19:11 530

原创 Android开发之Fragment基本总结

Android开发之Fragment基本总结1.Fragment的基本原理:Fragment的用法主要是那些?1.可以利用Fragment实现“选项卡切换”和“底部导航栏”页面切换;2.Fragment是在Android3.0引入,主要为了大屏幕安卓设备UI展示问题;通俗点理解就是一套UI布局自适应不同屏幕大小的安卓设备,而不用针对不同设备另外开发一套UI布局;如上图所示布...

2019-01-23 14:12:15 884

原创 JavaScript中Object和Json的区别

JavaScript中Object和Json的区别JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,JSON格式的数据,主要是为了跨平台交流数据用的。但JSON和JavaScript确实存在渊源,可以说这种数据格式是从JavaScript对象中演变出来的,它是JavaScript的一个子集。JSON本身的意思就是JavaScript对象表示法(Ja...

2019-01-23 14:02:18 3280

原创 $.extend中探索深拷贝和浅拷贝

网上这方面的教程比较多,由于上次看了篇错误的教程搞得我迷糊;特意写下这篇笔记,若文中有错误之处,忘路过的朋友及时指出,不想祸害其他朋友了;首先说明下:深拷贝(深复制)和浅拷贝(浅复制),特地说明怕有人以为又是不同的概念,其实是一样的;1.浅拷贝(浅复制):一句话概况就是多个对象之间对Objectl类型数据的备份,其实只是备份存储在栈内存中的地址;本质上还是指向同一个堆内存中的数据; 

2017-05-26 17:21:32 2547

原创 nodeJS之mysql数据库连接

首先链接mysql数据库之前需要去npm包管理器中安装msyql模块,该模块支持mysql 5.7+的数据库;然后安装好mysql 5.7+版本的数据库;安装数据库参考:启动mysql数据库,默认情况下安装好便会启动mysql数据库,如果没有启动可以通过cmd命令(以管理员身份运行)来启动数据库;如下图所示: nodeJS连接mysql数据库一般需要先配置mysql配置文件;(以下

2017-05-22 09:34:18 24849 7

原创 Javascript值类型和引用类型

首先了解下堆栈的基本知识点:栈(stack)和堆(heap)1.    stack为自动分配的内存空间,它由系统自动释放;而heap则是动态分配的内存,大小不定也不会自动释放。2.     栈一般保存的基本类型或引用类型中的指针,堆一般保存对象,数组等大小不定的数据;基本类型比较简单,其中有:Undefined、Null、Boolean、Number和String,基本类型值就是简

2017-05-17 14:27:05 360 1

原创 Javascript面向对象—继承

前面讲了怎样用Javascript怎样实现面向对象特性,现在实现怎样用Javascript来实现面向对象中的【继承】重要的功能;【继承】字面上理解就是子女继承父辈的东西。而对于编程语言来说,继承就是子类继承来自父类的方法或属性,然后进行相应的扩展。这样间接的达到了复用的效果; var parentClass1=function(name,age,sex){//创建父类prantClass

2017-05-16 17:42:00 234

h5登录界面下载

由于工作繁忙的原因,好久没发布效果了。忘各位敬请谅解。今天就忙里偷闲搞了一个简单的手机登录页面(包含注册)。有一些简单的东西效果,适合有基础的人学习

2016-12-16

携程特卖汇手机静态页

今天整理文档时,突然发现还有一个以前没做完的网页。于是吐了口气,把它干掉,这是携程在线的“携程特卖页”,有些地方与现在版面不同完全由于自己偷懒所致。大家可以下载预览,还是那句话,若发现Bug,请一定告知,共同进步

2016-12-16

100个精彩网页案例

《100个精彩网页案例》非常适合网页设计的新手开发学习,同时可以加强对HTML+CSS的应用!!

2014-09-16

Mysql必知必会

《Mysql必知必会》这本书非常适合没有基础的人学习,而且这本书简单易懂。是初学者很好的选择!

2013-10-29

JavaScript特效源码

这个资源适合初学者更加了解Javascript!让初学者更进一步!

2013-10-29

空空如也

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

TA关注的人

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