自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 序列化和反序列化

一、序列化:就是将内存中的对象转换为字节序列,方便持久化到磁盘或者网络传输SerializeToString(): serializes the message and returns it as a string. Note that the bytes are binary, not text; we only use thestrtype as a convenie...

2019-09-20 13:59:00 195

转载 mac 使用 brew 安装 nginx 及各种命令

一、安装brew install nginx或sudo brew install nginx二、启动brew services start nginx或sudo brew services start nginx三、重启brew services restart nginx或者sudo b...

2019-09-18 12:20:00 247

转载 前端安全问题之CSRF和XSS

一、CSRF1、什么是 CSRFCSRF(全称 Cross-site request forgery),即跨站请求伪造2、攻击原理用户登录A网站,并生成 Cookie,在不登出的情况下访问危险网站B3、防御措施① 加 Token 验证,通过判断页面是否带有 Token 来进行验证② 加 Referer 验证,通过判断页面的来源进行验证③ 隐藏令...

2019-09-05 10:05:00 267

转载 link和@import的区别

样式的导入方式link@import一、link 的使用<link href="index.css" rel="stylesheet">二、@import 的使用<style type="text/css">@import url(index.css);</style...

2019-08-24 22:12:00 151

转载 关于DOM事件流、DOM0级事件与DOM2级事件

一、DOM 事件模型DOM 事件模型包括捕获和冒泡,捕获是从上往下到达目标元素,冒泡是从当前元素,也就是目标元素往上到 window二、流流的概念,在现今的 JavaScript 中随处可见。比如说 React 中的单向数据流,Node 中的流,还有 DOM 事件流,都是流的一种生动体现。至于流的具体概念,用术语说流是对输入输出设备的抽象。以程序的角度说,流是...

2019-08-24 18:26:00 391

转载 深入理解iframe

一、什么是 iframeiframe 用于在页面内显示页面,使用 <iframe> 会创建包含另外一个文档的内联框架(即行内框架)<iframe src="URL"></iframe>二、iframe 的常用属性1、width定义 iframe 的宽度2、height定义 iframe 的...

2019-08-24 10:36:00 459

转载 HTML5 WebSocket

WebSocket 是 HTML5 新增的协议,它的目的是在浏览器和服务器之间建立一个不受限的双向通信的通道,比如说,服务器可以在任意时刻发送消息给浏览器。为什么传统的 HTTP 协议不能做到 WebSocket 实现的功能?这是因为 HTTP 协议是一个请求-响应协议,请求必须先由浏览器发给服务器,服务器才能响应这个请求,再把数据发送给浏览器。换句话说,浏览器不主动请求,服务器是没...

2019-08-23 18:24:00 147

转载 JavaScript实现继承的6种方式

一、JavaScript 的继承  许多面向对象语言都支持两种继承的方式:接口继承和实现继承。接口继承只继承方法签名,而实现继承则继承实际的方法。在 JavaScript 中由于函数没有签名也就无法实现接口继承,而只支持实现继承,而且实现继承主要通过原型链来实现的。  先引述下官方文档对于原型链的描述:其基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。要理解这个概...

2019-08-23 17:55:00 172

转载 KMP算法的时间复杂度与next数组分析

一、什么是 KMP 算法KMP 算法是一种改进的字符串匹配算法,用于判断一个字符串是否是另一个字符串的子串二、KMP 算法的时间复杂度O(m+n)三、Next 数组 - KMP 算法的核心KMP算法的核心是利用匹配失败后的信息,尽量减少模式串与主串的匹配次数以达到快速匹配的目的。具体实现就是通过一个 next() 实现1、next 数组:长度与字符...

2019-08-23 12:26:00 1675

转载 关于TCP/IP

一、网络模型计算机网络的两种模型:OSI 模型和 TCP/IP 模型由于 OSI 模型过于复杂难以实现,导致 TCP/IP 模型更早地应用在现实中,这也使得 TCP/IP 模型成为标准在 OSI 模型中,将计算机网络分成了 7 层,而在 TCP/IP 模型中则分成了 4 层,其各层对应关系如下表所示:OSITCP/IP对应网络协议所在位置...

2019-08-23 03:24:00 159

转载 常见排序算法的稳定性分析

一、不稳定排序算法有哪些1、堆排序2、希尔排序3、快速排序4、选择排序口诀:一堆(堆)希尔(希尔)快(快速)选(选择)二、常见排序算法稳定性分析1、堆排序稳定性分析我们知道堆的结构是节点i的孩子为 2*i 和 2*i+1 节点,大顶堆要求父节点大于等于其 2 个子节点,小顶堆要求父节点小于等于其 2 个子节点。在一个长为 n 的序列,堆...

2019-08-23 02:34:00 232

转载 页面置换算法详解

一、什么是页面置换算法进程运行时,若其访问的页面不在内存而需将其调入,但内存已无空闲空间时,就需要从内存中调出一页程序或数据,送入磁盘的对换区,其中选择调出页面的算法就称为页面置换算法。好的页面置换算法应有较低的页面更换频率,也就是说,应将以后不会再访问或者以后较长时间内不会再访问的页面先调出二、常见的页面置换算法1、FIFO(先进先出算法)(优先淘...

2019-08-23 01:28:00 4552

转载 SQL模糊查询的四种匹配模式

执行数据库查询时,有完整查询和模糊查询之分,一般模糊语句如下:SELECT 字段 FROM 表 WHERE 某字段 Like 条件一、四种匹配模式关于条件,SQL提供了四种匹配模式:1、%表示任意0个或多个字符,可匹配任意类型和长度的字符。有些情况下是中文,需用两个百分号(%%)表示:SELECT * FROM [user] WHERE u_name L...

2019-08-23 00:26:00 650

转载 关于进程与线程

“进程是资源分配的最小单位,线程是CPU调度的最小单位”一、进程(Process)1、什么是进程进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式...

2019-08-22 23:49:00 104

转载 JavaScript解析机制之变量提升

1、什么是预解析?在当前作用域下,JS 运行之前,会把带有 var 和 function 关键字的事先声明,并在内存中安排好。(这个过程也可以理解为变量提升)然后再从上到下执行 JS 语句(预解析只会发生在通过 var 定义的变量和 function 上)2、var 声明的变量使用 var 声明的变量预解析:告诉解析器知道有这个名字的存在并默认将该变量赋值 undefi...

2019-08-22 16:18:00 235

转载 new 运算符的原理

关于 new 运算符的原理:1、红宝书上解释:(1)创建一个新对象(2)将构造函数的作用域赋给新对象(3)执行构造函数中的代码(4)返回新对象2、MDN上的解释:(1)一个继承自 Foo.prototype 的新对象被创建(2)使用指定的参数调用构造函数 Foo,并将 this 绑定到新创建的对象。new Foo 等同于 new Foo()...

2019-08-21 20:39:00 285

转载 JavaScript类型转换总结与常见情况解析

类型转换是将值从一种类型转换为另一种类型的过程(比如字符串转数字,对象转布尔值等)一、类型转换的分类类型转换可以分为隐式类型转换和显式类型转换。二者的区别显而易见:我们能够从代码中看出哪些地方是显式强制类型转换,而隐式强制类型转换则不那么明显,通常是某些操作产生的副作用。例如:var a = 42;var b = a + ""; // 隐...

2019-08-20 17:49:00 163

转载 关于元素间的边距重叠问题与BFC

一、边距重叠常见情况1、垂直方向上相邻元素的重叠(水平方向上不会发生重叠)2、 垂直方向上父子元素间的重叠二、BFC1、什么是 BFCBFC(Block Formatting Context),即块级格式化上下文,创建了 BFC 的元素是一个独立的容器,里面无论如何布局都不会影响到外面的元素2、创建 BFC 的方法...

2019-08-16 02:40:00 218

转载 WEB前端-搜索引擎工作原理与SEO优化

一、搜索引擎工作原理搜索引擎的工作分为三个阶段,即爬行,索引和检索1、爬行搜索引擎具有网络爬虫或蜘蛛来执行爬网,每次抓取工具访问网页时,它都会复制该网页并将其网址添加到索引中。在“蜘蛛”抓取网页内容,提炼关键词的这个过程中,就存在一个问题:“蜘蛛”能否看懂。如果网站内容是 flash 和 js,那么它是看不懂的。相应的,如果网站内容是它的语言,那么它便能看懂,它的...

2019-08-14 16:03:00 997

转载 React使用axios请求并渲染数据

一、什么是axiosAxios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中二、axios的安装1、在项目根目录终端引入:npm isntall --save axios2、在使用 axios 的 js 文件中加入:import axios from 'axios';...

2019-08-13 02:29:00 968

转载 通过mock-api模拟真实数据

一、什么是 mock-apimock-api(模客)是一个便捷的 REST 接口数据模拟工具,用于前后端隔离测试,开发调试。二、mock-api 的使用1、注册登录http://mock-api.com/2、建立模拟系统可以是某个后端服务,也可以是一组相关的api集合3、创建规则规则由一组 http request(请求)...

2019-08-13 01:47:00 663

转载 React组件库Ant Design的安装与使用

一、什么是 Ant Design1、Ant Design提炼自企业级中后台产品的交互语言和视觉风格2、Ant Design 使用 TypeScript 构建,提供完整的类型定义文件二、Ant Design的安装1、在项目根目录终端引入:npm install antd --save2、在index.js 中加入:...

2019-08-10 19:11:00 307

转载 React 生命周期函数

React v16.4 生命周期图示一、组件挂载阶段(Mounting)1、constructor()2、static getDerivedStateFromProps()3、render()4、componentDidMount()二、组件更新阶段(Updating)1、static getDerivedStateFromProps()2...

2019-08-10 17:33:00 90

转载 React中的State与Props

一、State1、什么是 state一个组件的显示形态可以由数据状态和外部参数决定,其中,数据状态为 state,外部参数为 props2、state 的使用组件初始化时,通过 this.state 给组件设置一个初始的 state,在第一次 render 时就会用这个数据渲染组件class ItemList extends React.Compone...

2019-08-08 22:46:00 131

转载 使用 create-react-app 快速构建 React 开发环境

在终端执行以下命令创建项目:1、指定创建的项目位置(这里以桌面为例)cd Desktop2、创建 React 项目npx create-react-app my-app3、进入项目并启动cd my-appnpm start可以直接将项目文件拖入终端,输入 npm start 按回车启动转载于:htt...

2019-08-07 18:27:00 108

转载 使用React.Fragment替代render函数中div的包裹

1、在 React 中,render 函数中 return 的内容只能有一个根节点,如果多个元素嵌套,需要用一个标签元素包裹这个包裹的标签通常用 div,示例如下:class App extends Component { render() { return ( <div>   <h1>大标题</h...

2019-08-07 17:55:00 258

转载 error: invalid-first-character-of-tag-name错误解决方案

HTML 特殊字符写法要用原始码,例如:‘<’ 原始码为 &lt;‘>’ 原始码为 &gt;解决示例:原错误代码<div><</div>修改后代码<div>&lt;</div>转载于:https://www.cnblogs....

2019-08-02 00:27:00 6853

转载 Vue项目中自动将px转换为rem

一、配置与安装步骤:1、在 Vue 项目的 src 文件夹下创建一个 config 文件夹:2、在 config 文件夹中创建 rem.js:3、将以下代码复制到 rem.js 中:// 基准大小const baseSize = 32// 设置 rem 函数function setRem () { // 当前页面宽度相对于...

2019-08-01 16:49:00 864

转载 Vue移动组件库Mint UI的安装与使用

一、什么是 Mint UI1、Mint UI 包含丰富的 CSS 和 JS 组件,可以提升移动端开发效率2、Mint UI按需加载组件3、Mint UI 轻量化二、Mint UI 的安装1、在项目根目录终端引入:npm i mint-ui -S2、在main.js 中加入:import MintUI from 'mi...

2019-07-31 15:07:00 223

转载 Vue自定义组件

一、组件的创建在 components 文件夹下新建一个组件runoob.vue<template> <div>自定义组件</div></template><script>export default { data () { return { } }...

2019-07-31 02:50:00 80

转载 Vuex状态管理总结

一、什么是 Vuex1、Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式2、Vuex 采用集中式存储和管理应用中所有组件的状态3、Vuex 应用的核心是 store(仓库)-- 包含 state(组件中的共享状态)和 mutations(改变状态的方法)二、Vuex 的安装1、在项目根目录终端引入:npm install vuex...

2019-07-30 22:51:00 138

转载 关于状态管理模式

一个简单的 Vue 计数应用:new Vue({ // state data () { return { count: 0 } }, // view template: ` <div>{{ count }}</div> `, // actions methods: ...

2019-07-30 17:54:00 187

转载 Vue路由实现页面跳转的两种方式(router-link和JS)

Vue.js 路由可以通过不同的 URL 访问不同的内容,实现多视图的单页 Web 应用1、通过<router-link> 实现<router-link>组件用于设置一个导航链接,切换不同 HTML 内容使用方法:简单写法<router-link to="demo2">demo2</router-lin...

2019-07-30 00:02:00 2041

转载 Vue过渡效果的实现

1、Vue 过渡组件Vue 在插入、更新或者移除 DOM 时,使用内置的过渡封装组件可以实现过渡效果语法格式:<transition name = "xx"> <div></div></transition>2、过渡的类名在进入/离开的过渡中,会有 6 个 class 切换:v-en...

2019-07-29 16:37:00 161

转载 Vue中的DOM操作

1、在要获取的标签中添加 ref="xx"示例:<button ref="btn">一个按钮</button>2、在 mounted 钩子中使用 this.$refs.xx. 获取并操作 DOM 元素示例:mounted() { this.$refs.btn.style.backgroundColor="red"...

2019-07-29 15:53:00 198

转载 SASS 和 LESS 的区别

1、编译环境不同SASS 的安装需要 Ruby 环境,是在服务端处理的;LESS 需要引入 less.js 来处理代码输出 CSS 到浏览器,也可以在开发环节使用 LESS,然后编译成 CSS 文件直接使用2、变量符不同SASS 变量符是 $LESS 变量符是 @3、变量作用域不同> SASS 作用域$color: blue;...

2019-07-27 02:47:00 123

转载 Vue计算属性和侦听器

一、计算属性:computed模板内的表达式非常便利,但放入太多的逻辑会让模板过重且难以维护,所以,对于复杂的逻辑,可以使用计算属性 computed。1、基本用法HTML 代码:<div id="app"> <p>原字符串: {{ msg }}</p> <p>计算后反转字符串: {{ rmsg }}&...

2019-07-27 02:13:00 85

转载 Vue模板语法与常用指令总结

Vue.js 使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数,结合相应系统,在应用状态改变时,Vue 可以智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。一、插值1、文本数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值:...

2019-07-26 17:26:00 184

转载 Vue 生命周期

一、什么是生命周期?Vue 实例从创建到销毁的过程,就是生命周期。二、生命周期钩子1、创建期间的生命周期函数:beforeCreate:实例刚在内存中被创建出来,此时还没初始化好 data 和 methods 属性created:实例已在内存中创建,此时 data 和 methods 已经创建完成,还没开始编译模板beforeMount:此时已经完...

2019-07-25 23:23:00 65

转载 querySelector和getElementById方法的区别

一、querySelector() 的定义querySelector() 方法选择指定 CSS 选择器的第一个元素querySelectorAll() 方法选择指定的所有元素二、与 getElementBy 的区别这两个新添加的 API 与 getElementById() / getElementsByTagName() 有什么区别呢?举个例子:...

2019-07-24 22:48:00 1021

空空如也

空空如也

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

TA关注的人

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