自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TS-泛型

TS-泛型1.当需要 定义 一个 参数 类型 与 返回 值 类型 不确定的 函数 时:使用 anyfunction test(name:any):any{ console.log('this is 泛型 demo'); /* ... */ return name}test(123);使用 any 定义 时 存在 问题: 虽然 可以 知道 传入值 的类型 但是 ...

2019-07-22 14:18:09 7588

原创 TS-接口

TS-接口1.关键字 interface 用于 定义 接口2.接口 用于 约束 变量 或者 函数interface A { name:string; age:number}//接口 A 表示 被 约束的 变量 或函数 必须 只能 拥有 string 类型 的 name 属性 以及 number 类型 的 age 属性(缺一不可)若需要 指定 可以 拥有 其他 属性 或...

2019-07-19 17:47:05 1163

原创 TS-修饰符 与 static

TS-修饰符 与 static1.static: 用于 修饰 变量 或者方法,表示 静态的当类 中 的 方法 被 声明 为 static 时,其实例化 对象 不可 调用 该方法,只有 类 本身 ,以及 其子类 可以 调用。eg:class A { name:string; age:number; constructor(name:string,age:number){ th...

2019-07-19 14:42:59 6157

原创 TS-type script--类型

TS-TypeScript–类型1.用于约束 变量 值的 数据类型常用:语法: let 变量 : 数据类型 = 值;any : 表示任意类型string number boolean object undefined symbol 等 原生js里面的 数据类型void: 表示 空数据类型 只能 被 赋值 为 null 或者 undefined 。unde...

2019-07-18 18:53:05 337

原创 Nginx 的入门 使用

Nginx 的入门 使用1.下载:http://nginx.org/en/download.html2.启动:找到nginx 安装的 文件夹 直接 使用 git bash here 打开 命令行输入 ./nginx.exe 即可 启动打开浏览器 访问 localhost 出现 如下 页面 即启动成功!...

2019-07-18 17:07:56 136

原创 Redirect 重定向

Redirect 重定向1.基本使用:const http = require('http'); //用于创建 服务的 http模块const fs = require('fs'); //用于读写文件的 模块标题//使用 http 的 createServer 方法 创建 一个 服务 该方法 会返回 一个 新建的 http.Server 实例http.createServer(f...

2019-07-16 18:51:04 1586

原创 Accept 与 Content 数据协商

Accept与 Content 数据协商1.请求:Accept: 标明 需要 什么 类型的数据Accept-Encoding: 代表 数据 以 什么 方式 来 传输Accept-Language: 标明 返回数据 的 语言 类型User-Agent: 标明 访问 的 客户端 类型 (PC 端 或者 移动端 ) 用什么 内核的 浏览器2.响应:Content-type:...

2019-07-16 18:32:26 196

原创 Cookie和Session

Cookie和Session1.Cookie 属性域名:顶级域名下 设置的 cookie 是可以 被 二级域名 共享 访问的eg:xinnet.com 下设置的 cookie 在 domain.xinnet.com 下也可以被访问作用:在网站中 http 请求 是 无状态的, 也就是 即使 第一个 登陆成功 之后,第二次 请求 服务器 依然 不知道 当前请求的是哪个用...

2019-07-16 17:36:32 103

原创 缓存验证Last-Modified和Etag

缓存验证Last-Modified和Etag1.Last-Modified: 上次修改时间下次请求的时候 request readers 会带上 If-Modified-Since 或者 If-Unmodified-Since 与服务端的 Last-Modified 对比,相同 则 使用 缓存 ,不同 则重新请求2.Etag: 数据签名下次请求 request headers 会...

2019-07-16 11:25:17 517

原创 缓存头Cache-Control 的含义和使用

缓存头Cache-Control 的含义和使用用来表示浏览器 是否 可以 进行 缓存,或缓存 进行一些限制(1).public: 表示任何地方 都可以进行缓存(2).private: 表示 只允许 发起 请求 的浏览器 才可以 进行 缓存(3).no-cache: 任何 地方 都不允许 缓存(可以进行缓存,但是每次都需要向服务器请求验证 ,缓存是否可用)(4). max-age...

2019-07-16 11:04:45 445

原创 js 数组操作 会修改原数组的 方法

js 数组操作 会修改原数组的 方法1.pop() 删除 数组 最后一个元素;2.shift() 删除 数组 第一个元素;3.push() 数组 最后 添加 一个 元素;4.unshift() 数组 开头 添加 一个 元素;5.sort() 数组 排序6.splice() 数组 删除 替换 插入 元素7.reverse() 数组 反转以上7个方法 是会 修改...

2019-07-15 10:23:28 2914

原创 Object.isFrozen()方法判断一个对象是否被冻结

Object.isFrozen()方法判断一个对象是否被冻结1.一个对象被冻结 必须满足两个条件:该对象 的所有属性值 不可 被修改 ----Object.defineProperty(object,attr,{writable:false});该对象 不可被 配置 ----- Object.defineProperty(object,attr,{configurable:f...

2019-07-15 10:14:16 941

原创 跨域资源共享 CORS 详解

CORS跨域请求的限制与解决方法1.方法一:服务端将 response 的header 中的 Access-Control-Allow-Origin 属性设置为 *这里使用 node.js 搭一个简单的 服务演示:const http = request('http'); //引入 创建服务的 http 模块http.createServer(function(request,...

2019-07-12 20:07:06 345

原创 CSP----Content-Security-Policy 网页安全政策(防止xss 跨域脚本恶意攻击)

CSP----Content-Security-Policy 网页安全政策(防止xss 跨域脚本恶意攻击)1.资源加载限制:以下属性为限制指定 资源 的属性default-src: 以上所有资源 都必须符合 条件 才会加载eg:const http = require('http'); //用于创建 服务的 http模块const fs = require('fs');...

2019-07-09 14:49:27 1152

原创 URI -- URL 和 URN

URI – URL 和 URN1.URI: 统一资源标识符 包含了URL RUN2.URL: 统一资源定位器http 代表 链接的 协议host 用来 定位 资源 在 互联网的 位置 (物理地址) IP:80 端口号 每个端口号 都可以 是一个 web服务 端口就是用来 找到 host 物理服务器 根据 端口号 找到 指定的 web服务器...

2019-07-08 19:45:28 135

原创 从浏览器输入URL之后HTTP请求到返回结果的完整过程

从浏览器输入URL之后HTTP请求到返回结果的完整过程1.如下图:2.过程解析:(1).浏览器输入URL 跳转 之后 浏览器 会先判断 这个 链接(URL)是否 需要 重定向(Redirect),需要就会跳转到 重定向页面,不需要的话就进入下一步。(2).判断是否需要重定向之后 浏览器会判断 这个 访问的 链接 是否 有缓存(之前访问过)。有缓存 直接 从 缓存 取数据,没有缓存...

2019-07-02 20:03:07 3233 1

原创 实现mergePromise函数,把传进去的数组顺序先后执行,并且把返回的数据先后放到数组data中

实现mergePromise函数,把传进去的数组顺序先后执行,并且把返回的数据先后放到数组data中。(Promise.all 原理)const asyncFun = ms = > new Promise((resolve,reject)=>{ //此处 用 setTimeout 模拟 异步操作 setTimeout(()=>{ resolve(); },...

2019-06-12 16:55:12 1005 1

原创 node.js - egg 后端 使用redis 进行多个异步方法 操作数据 多个异步方法 执行完后 再取数据

node.js - egg 后端 使用redis 进行多个异步方法 操作数据 多个异步方法 执行完后 再取数据1.方法介绍:(1). hset: redis.hset(‘队列名’,‘键名(域名)’,值(value)) 为 指定 队列 新增 指定 的 值(2).hget: redis.hget(‘队列名’,‘键名(域名)’) 获取 指定 队列 内的 指定 键名(域名) ...

2019-05-28 10:44:32 1742

原创 egg 使用 Sequelize 操作Mysql

egg 使用 Sequelize 操作Mysql1.安装 egg-sequelize 插件npm install egg-sequelize --save2.安装 mysql2 模块npm install mysql2 --save3.在config/config.default.js 文件内引入 上述的egg-sequelize插件sequelize:{ dialect...

2019-04-02 09:58:24 1728 1

原创 MongoDB服务无法启动 解决方法

MongoDB服务无法启动 解决方法1.情景再现:在cmd 命令行内 进入到mongodb 的bin 文件夹内输入下面的指令启动服务net start mongodb此时会报错错误信息: 服务没有响应控制功能2.解决办法:在cmd 命令行内 进入到mongodb 的bin 文件夹内输入:sc delete mongodb 运行再输入mongod --dbpa...

2019-03-22 14:36:00 4985 1

原创 React 路由传参(js)

React 路由传参(js)1.字符串拼接传参this.props.history.push({pathname:`/xxx/${id}`});优点:浏览器刷新,依然能获取到参数缺点:只能传递 字符串类型的参数获取参数:this.props.match.params //这个对象包含了所有拼接传入的参数2.query 对象传参this.props.history...

2019-03-20 11:49:57 491 2

原创 使用node.js+puppeteer 实现一次稍微复杂的爬虫

使用node.js+puppeteer 实现一次稍微复杂的爬虫1.一些方法的说明均在代码中有注释const puppeteer = require('puppeteer');const fs = require('fs');const userAgents = require('./userAgents.js');(async ()=>{ //代理地址 let pro...

2019-03-05 10:43:54 2173

原创 node.js+puppeteer 爬虫设置 请求拦截-图片请求

node.js+puppeteer 爬虫设置 请求拦截-图片请求1.首先需要先将 请求拦截 功能开启:await page.setRequestInterception(true); // 设为true 开启 false 关闭2.再利用 request 事件 来对请求进行处理(筛选)page.on('request', interceptedRequest => ...

2019-03-05 09:02:01 4561

原创 async 与await 解决请求回调地狱(多层请求嵌套)

async 与await 解决请求回调地狱(多层请求嵌套)1.async(异步) 与 await(同步) 方法 解决请求回调地狱 是通过promise来实现的,所以使用这两个方法进行测试也是要模拟返回一个promise对象===手动返回。*没有返回promise对象将无法实现异步同步(错误写法)function test1(){ setTimeout(()=>{ return ...

2019-02-21 16:18:18 8462

原创 使用redux-actions库编写redux

使用redux-actions框架编写redux1.因为需要使用到@装饰器,所以需要在babel内添加配置。首先,先执行如下指令npm run eject执行该指令会生成config文件夹以及在package.json文件内生成一些配置项在package.json文件内找到 babel项(一般在最后)添加上图所示的 plugins项即可。2.开始使用redux-actio...

2019-02-12 17:44:34 488 2

原创 使用express框架搭建node.js后端服务

使用express框架搭建node.js后端服务1.首先要先安装一些依赖(这里使用的是npm)(1).下载安装expressnpm install express//下载 express 框架(2).下载安装 bady-parsernpm install bady-parser//用于解析 json text 等格式的数据(3).下载安装 cookie-parser 和...

2019-02-10 15:52:08 731

原创 node.js 中使用 JSON.stringify方法转化数据库中的字符串对象数组的时候报错解决办法

node.js 中使用 JSON.stringify方法转化数据库中的字符串对象数组的时候报错解决办法。1.此时可以使用eval方法:(1):转化对象:eval('('+ stringObj + ')');eg: let arr='{"name":"张三","age":18,"message":[1,2,3]}' let arr2=eval('('+arr+')'); arr...

2019-01-31 16:50:01 1584

原创 React 使用 Redirect 进行重定向时浏览器报错问题

React 使用 Redirect 进行重定向时浏览器报错问题1.我们在项目中有非常多的地方需要使用路由的重定向,这个时候就要使用到 Redirect组件进行路由重定向。但是使用的时候会发现,浏览器会报错:: You tried to redirect to the same route you’re currently on: “/home” 类似这样的错误。但是还是能达到效果,就是会有一个报...

2019-01-24 14:44:53 4930

原创 ES6中构造函数内super关键字的使用

ES6中构造函数内super关键字的使用1.在ES6实现继承中会有constructor构造函数,而实现继承的子类构造函数中必须先调用super()方法,此处的super()为父类的构造方法,而如果不调用,浏览器则会报错。class Person { constructor(name,age){ this.name=name; this.age=age; }}class Son...

2019-01-21 14:27:33 1986

原创 利用Object.defineProperty方法实现数据双向绑定

使用Object.defineProperty方法实现数据双向绑定1.代码如下:html 部分: <input type="text" id="input"><div id="text"> </div> //为了看到效果设置一个div用于展示内容<button id="btn">click m

2019-01-19 17:16:41 237

原创 Object.defineProperty()方法

Object.defineProperty()方法1.Object.defineProperty方法参数:—Object.defineProperty(obj,attrName,describe)该方法接受3个参数1.obj : 为操作的对象2.attrName: 为操作的对象的属性 (操作的对象内没有该属性,则表示为添加该属性)3.describe: 为操作属性的特性 (是一个对象...

2019-01-19 16:20:36 153

原创 展开运算符的使用

展开运算符的使用1.数组的使用:可以达到复制数组的作用let arr1=[1,2,3];let arr2=[4,5,6,...arr1];console.log(arr2);注意展开运算符只能达到浅层克隆(复制)let arr=[1,[2,3],{name:'张三'}];let arr2=[...arr];arr2[2].name='李四';arr2[1][0]=100...

2019-01-18 12:01:27 529

原创 JSON.stringify()方法的其他使用

JSON.stringify()的其他用途1.JSON.stringify()方法除了可以用来将普通对象转化成json对象(字符串对象),还可以用来将任何类型的数据转化成其字符串形式。let a=123;JSON.stringify(a);// '123'let b=true;JSON.stringify(b);// 'true'...

2019-01-17 09:22:19 464

原创 当需要给一个组件的根元素添加事件的时候会出现添加事件不成功的现象解决方法

当需要给一个组件的根元素添加事件的时候会出现添加事件不成功的现象解决方法。1.此时可以给事件添加上.native修饰符如下:<mycomponent @click.native="event" />2.注意如果给普通HTML元素绑定事件的时候也加上.native则会出现绑定不上的现象。...

2019-01-07 16:00:59 346

原创 JS获取当前时间(24小时制)

JS获取当前时间(24小时制)let date=new Date();let newdate=date.toLocaleString('chinese', { hour12: false }); //获取24小时制,中国时间,打印出 2019/01/03/ 08:40:32

2019-01-03 08:41:21 36500 2

原创 Vue中ref属性使用的注意事项

Vue中ref属性使用的注意事项1.在vue中为HTML标签设置ref属性,主要是为了一些需要进行操作DOM才能完成的功能而设置的。2.ref属性相当于给标签设置了一个ID,可以使用该特殊标识来进行一些DOM的操作,但是使用的时候有如下几个注意事项:ref属性值绑定元素都是唯一的,如果一个ref属性绑定了多个dom节点,那么这个ref属性将会默认绑定到最后设置该ref属性值的DOM节点。...

2019-01-01 15:49:35 7186

原创 Vue-中若元素属性绑定的值需要为数字时坑

Vue-中若元素属性需要绑定的值为数字时的处理1.如果直接这样写:<select v-model='value'> <option value='数字'>...</option></select>这时vue并不会把你写入的数字,解析成数字而是解析成字符串,即使是你写到data中一个变量为数字,再使用。都是如此。2.解决:如果属...

2018-12-29 14:32:06 6724

原创 ElementUI中Switch控件属性值为Number时报错的问题

ElementUI中Switch控件属性值为Number时报错问题1.使用element-ui中switch控件时,如果为该控件属性值赋值为数字时,这时浏览器会报错,但是还是能正常显示效果,为了解除这个报错,我们可以将该控件属性值为数字的属性改为单向绑定:如下 <el-switch v-model="value" :width='100' > w...

2018-12-25 16:21:58 2658

原创 封装XMLHTTPRequest

原生js封装promise1.代码如下: function getJson(type,url,data){ const promise=new Promise(function(resolve, reject){ const handle=function(){ if(this.readyState!=4){ return; } ...

2018-12-18 09:03:05 707

原创 Vue项目中-axios设置默认请求地址和请求头

Vue项目中-axios设置默认请求地址和请求头1.导入axiosimport axios from 'axios'2.设置默认请求地址axios.defaults.baseURL='你的请求地址'3.为post请求设置默认请求头axios.defaults.headers['Content-Type'] = 'application/x-www-form-urlencoded'...

2018-12-18 08:36:52 32102 8

空空如也

空空如也

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

TA关注的人

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