自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ES6——Class 类的继承 extends

文章目录1.举例2.Object.getPrototypeOf() 获取子类的父类3.super关键字4.类的 prototype 和__proto__属性1.举例Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多子类必须在constructor方法中调用super方法,否则新建实例时会报错ES5 的继承,实质是先创造子类的实例对象this,然后再将父类的方法添加到this上面(Parent.apply(this))ES6 的继承

2021-10-05 21:37:51 777

原创 ES6——Class 类

文章目录一、写法对比1.传统写法:2.Class写法类型监测不可枚举性constructor 方法二、存在getter和setter三、class类里面的属性可以修改为表达式(字面量解析)四、可简写五、注意点1.严格模式2.不存在提升3.也有name 属性4.this指向(类的实例)5.静态方法6.私有方法和私有属性(未实现)js中,生成实例对象的传统方法是通过构造函数,new产生一个对象一、写法对比1.传统写法: function Point(x,y){ this.x=x;

2021-10-05 18:37:43 239

原创 ES6——async函数 .

文章目录一、概念二、对比 Promise联用Generator && Promise联用async1.Promise联用Generator2.Promise联用async3.async处理多个Promise(等待间无关)4.async处理多个Promise(等待间有关)三、Promise 对象的状态变化四、await 命令五、错误处理六、async 函数注意点1.把await命令放在try...catch代码块中2.同时触发多个await (Promise.all)3.await命令只能用在

2021-10-05 15:59:36 263

原创 ES6——Promise函数

文章目录一、三个状态二、基本用法1.举例2.使用原生Ajax3.图片异步加载(懒加载)三、then()四、Promise.all()五、Promise.race()六、Promise.resolve()七、Promise.reject()八、Generator 函数与 Promise 的结合异步编程解决方案一、三个状态1.promise内部状态 不受外界影响,由异步编程结果决定pending进行中fulfilled成功rejected失败2.promise中的状态 一旦发生变化不会再修改

2021-10-05 10:00:33 265

原创 ES6——Generator函数

var x=1; function foo(x){ var x=3; let y= function () {x=2}; y(); console.log(x); } foo(); //2

2021-10-04 11:07:57 120

原创 ES6——函数扩展 作用域

reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。对空数组是不会执行回调函数的。1.计算数组总和var num = [1,2,3,4,5];var res = num.reduce(function(total,num){ return total+num; //return total + Math.round(num);//对数组元素四舍五入并计算总和},0);console.log(res); //15//num.reduc

2021-10-03 23:06:44 90

原创 ES6——箭头函数

文章目录一、格式二、特点1.上下文this指针一致(没有自己的this)2.不可以当做构造函数3.不存在arguments对象4.不可以使用yield命令,因此不能用作Generator函数5.对象中的函数 不能使用箭头函数一、格式1.只有一个参数 function f(a){} //只有一个参数 括号可省略 let f=a=>{};2.无参或多个参数 let fun= function () { return '123'; }

2021-10-03 23:05:35 80

原创 ES6——数组扩展 ... Array.from() Array.of() flat() reduce()

文章目录1.扩展运算符...2.Array.from()类数组3.Array.of()4.find() 和 findIndex()5.fill() 填充数组6.数组实例的 entries(),keys() 和 values()7.includes()8.flat(),flatMap()1.扩展运算符…ES6——扩展运算符…2.Array.from()将两类对象转为真正的数组:类数组(querrySelectAll)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)

2021-09-27 21:00:13 325 1

原创 ES6——对象扩展

文章目录1.属性的简洁表示法2.属性名表达式3.方法的 name 属性getter setter访问器4.属性的可枚举性和遍历(1)可枚举 enumerable(2)遍历对象的属性5.super 关键字1.属性的简洁表示法(1)属性和方法/*允许在对象内部直接使用变量【即属性和属性值变量一致,可以简写】*/ let name='张三'; let stu={ name, //等同于 //name:name sleep(){}

2021-09-21 15:14:51 161

原创 ES6——遍历器Iterator && for of循环

文章目录

2021-09-21 10:18:52 259

原创 ES6——字符串扩展 新增方法

文章目录一、字符串的新增方法1.includes() 是否找到参数字符串2.监测子串是否在字符串的头部或尾部3.repeat() 将字符串重复n次4.补全字符串 padStart padEnd5.模板字符串 ``(1)普通字符串(2)多行字符串(3)字符串可以插入变量和表达式(4)字符串中可以调用函数ES6 之前判断字符串是否包含子串,用 indexOf 方法,ES6 新增了子串的识别方法一、字符串的新增方法1.includes() 是否找到参数字符串 let str='abc';

2021-09-21 00:02:43 147

原创 ES6——Set

文章目录一、add() 添加数据二、类型转换1.数组array转换为Set集合2.Set转数组3.String 转 Set4.Set 转 String【注意】不能使用toString三、Set 对象作用1.数组去重2.并集 数组合并3.add添加 size返回长度4.has 监测值是否存在5.delete 删除某个值6.clear 清除所有成员四、Set 遍历方法1.keys() 返回键名的遍历器2.values()3.entries()4.forEach()5.for...ofweakSet weakM

2021-09-15 00:05:47 328

原创 ES6——map

文章目录map集合一、 get set注意对象是引用类型值NaN二、for...of循环遍历遍历方法(1)keys()(2)values()(3)entries()(4)forEach(5)has(6)delete(7)delete三、map对象的操作1.map与array的转换2.克隆map3.合并mapmap集合以键值对方法存储值Object和Map存储的都是键值对组合区别:(1) object的键的类型是 字符串 或者 Symbols;map的键的类型是 可以是任意类型(要注意是否是引用

2021-09-13 23:57:06 500

原创 ES6——let const Symbol 解构赋值

文章目录一.let const(一)let(二)const二、解构赋值1.数组解构赋值2.对象解构赋值一.let const(一)let1.声明的变量只能在当前作用域的内部有效(作用域其实就是{})var 全局范围内有效(因为var声明的变量在Windows的整个对象上)例子:因为let出了当前作用域会无效,for循环每走一次,就相当于一个代码作用域。下一次循环就又是另一个代码作用域了。变量 i 是用 var 声明的,在全局范围内有效,所以全局中只有一个变量 i, 每次循环时,setT

2021-09-13 22:52:58 250

原创 ES6——扩展运算符...

文章目录一、替代函数的 apply 方法1.将数组转为函数的参数2.求出数组最大/小元素3.将一个数组添加到另一个数组的尾部二、扩展运算符的应用1.复制数组2.合并数组3.与解构赋值结合4.实现了 Iterator 接口的对象扩展运算符(…)将一个数组转为用逗号分隔的参数序列 (好比 rest 参数的逆运算)console.log(...[1, 2, 3])// 1 2 3一、替代函数的 apply 方法1.将数组转为函数的参数// ES5 的写法function f(x, y, z) {

2021-09-11 00:56:18 237

原创 Http请求头和响应头(Get和Post)

文章目录一、HTTP简介二、HTTP消息结构 [请求报文](一)请求行(1)请求方法(2)请求头(3)空行(4)请求数据(post)实例 (post)三、HTTP响应消息(一)状态行(1)HTTP状态码(二)HTTP响应头 content-Type(1)定义和用法application/x-www-form-urlencoded四、关于HTTP请求GET和POST的区别1.数据位置2.传输数据的大小3.安全性参考:Http请求一、HTTP简介HTTP协议是 超文本传输协议 的缩写,是用于从万维网服务器

2021-09-09 11:46:26 7014

原创 Mock.js小结

文章目录1.配置作用:生成随机数据,拦截Ajax请求在没有后端接口的时候,只能模拟1.配置cnpm install --save-dev mockjs建一个模拟文件src/mock/index.js:import Mock from 'mockjs'Mock.mock('/login',(config)=>{ console.log(config); return { states:'ok', data:{} }});在ma

2021-09-09 11:45:47 51

原创 vue中qs的使用

vue中qs的使用

2021-08-26 09:43:51 958

原创 在 vue项目使用base64加密

1.安装依赖cnpm install --save-dev js-base642.在项目文件中引入let Base64 = require('js-base64').Base643、在项目文件中使用Base64.encode(this.pwd);//加密Base64.decode(this.pwd);//解密

2021-08-25 19:53:40 216

原创 admin-system 配置准备

文章目录1.创建项目,进行各种配置2.在webpack.config.js中配置:用@代替src3.使用Element-UI插件4.安装less5.创建文件夹6.样式重置7.标准备注写法8.配置localStorage缓存 (src/storage/Storage.js)9.配置路由 (src/router)10.配置src/store (vuex)11.封装axios src/request(一)http.js(二)api.js1.创建项目,进行各种配置(1)需要先配置@babel解析器,cnp

2021-08-25 16:14:58 543

原创 vue-axios interceptors(拦截器) 实际应用

在项目开发中,遇到下面这样一个问题: 在进行敏感操作之前,每个请求需要携带token,但是token 有有效期,token 失效后需要换取新的token并继续请求【需求分析】:每个请求都需要携带 token ,所以我们可以使用 axios request 拦截器,在这里,我们给每个请求都加 token,这样就可以节省每个请求再一次次的复制粘贴代码。token 失效问题,当我们token 失效,我们服务端会返回一个特定的错误表示,比如 token invalid,但是我们不能在每个请求之后去做刷新

2021-08-24 21:07:08 373

原创 后台api请求接口

app.js:const express=require("express");const app=express();const url=require("url");let port=8082;let host="127.0.0.1"//接入中间件app.use((req,res,next)=>{ //设置cross跨域 res.header('AcceAss-Control-Allow-Origin','*'); next();})//post请求.

2021-08-21 23:16:52 305

原创 vue中的 Ajax请求—axios

文章目录配置路由一、配置axiosvue 使用axios插件(一)请求方法(不使用)(2)axios封装 !1.设置axios请求超时2.默认设置post的请求头3.设置ajax拦截器(1)请求拦截器(2)响应拦截器4.封装get post请求5.封装完成后 封装整个api 统一管理6.实例附:完整版axios封装用于前后端分离项目 返回的是Promise配置路由1.配置路由文件routes.js:let Index=()=>import('../view/Index.vue')expo

2021-08-21 21:06:53 3062

原创 flex布局

文章目录一、基本属性1.flex-direction决定了项目的排列方式2.flex-wrap决定了项目排列满屏,是否换行3.justify-content 项目在主轴上的对齐方式4.align-items 决定了项目在交叉轴上的对齐方式二、常用布局1.flex设置元素垂直居中对齐2.用flex布局制作导航栏3.有时候需要做成左图右文字的样式4.固定百分比布局(1)等分布局(2)某一个固定(3)多个固定5.圣杯布局6. 输入框布局,有时需要在输入框的前部添加提示,或者后部添加按钮7.底部footer固定在底

2021-08-21 16:12:20 1520

原创 js加密解密

文章目录一、Base641.汉字 数字 字母2.数字/字母加密二、汉字解密1.escape加密2.UIR加密一、Base64Base64,就是选出64个字符作为一个基本字符集(A-Z,a-z,0-9,+,/,再加上作为垫字的"=",实际是65个字符),其它所有符号都转换成这个字符集中的字符。Base64.encode()——加密 ,Base64.decode()——解密Base64.btoa()——加密 ,Base64.atob()——解密先进行引用:<script src="h

2021-08-17 23:33:56 224

原创 Vue2.0——非父子组件通信:事件车通信 eventEmiter

文章目录一、事件车通信二、vuex一、事件车通信emit(触发) on(监听变化 处理) 先监听,后触发不是vue,是node 的 eventEmiter在src/eventEmitter/event.js中://写node的事件通信let event=require("events");let eventEmitter=new event.EventEmitter();//暴露模块export default eventEmitter;main.js中:impor

2021-08-11 07:22:07 658

原创 Vue2.0——组件动态加载 <keep-alive>

文章目录一、动态切换组件1.使用组件标签 component 的 is 属性来动态切换组件2.使用keep-alive 缓存之前的状态一、动态切换组件1.使用组件标签 component 的 is 属性来动态切换组件<component :is=""></component>Keep.vue:在它里面挂载两个页面组件keepOne,keepTwo<template><div id="keep"> <div class="keep-li

2021-08-10 20:48:39 466

原创 Vue2.0——自定义指令

文章目录一、概念二、示例1.局部注册2.全局注册钩子函数钩子函数是在一个事件触发的时候,在系统级捕获到了他,然后做一些操作。一段用以处理系统消息的程序。“钩子”就是在某个阶段给你一个做某些处理的机会。特点1.是个函数,在系统消息触发时被系统调用2.不是用户自己触发的 钩子函数的名称是确定的,当系统消息触发,自动会调用。常见的钩子函数vue的生命周期函数vue的自定义指令一、概念 vue2.x版本 除了内置指令 可以自定义指令 全局注册**directive**

2021-08-10 19:13:50 2109

原创 Vue2.0——过滤器

文章目录一.局部过滤器1.无参过滤器2.带参过滤器二.全局过滤器三、v-for 变相使用过滤器四、串联式过滤器过滤器:对绑定的数据以及格式进行整理添加位置:v-bind绑定值 ,{{}}添加过滤器。 表达式的尾部以管道的方式引入 |到现在2.x版本 过滤器都是自定义的 vue允许自定义过滤器两种过滤器: 全局过滤器 和 局部过滤器 过滤器都需要返回值一.局部过滤器在当前组件内部使用1.无参过滤器在filters属性上自定义过滤器实现<template><div id=

2021-08-10 16:25:00 1477

原创 Vue2.0——组件生命周期

文章目录1.虚拟dom2.八大生命周期生命周期钩子的 this 上下文指向调用它的 Vue 实例(VueComponent)1.虚拟dom真实dom : 原生dom - - - 按照dom原生操作顺序实时更新界面(造成性能低)虚拟dom : vNode 和dom对象一致 , 等待一系列操作完成之后 一次性更新界面2.八大生命周期beforeCreate,created,beforeMount,mounted,beforeUpdate,updated,beforeUnmount,

2021-08-10 14:50:23 795

原创 Vue2.0——computed 计算属性区域

文章目录一、概念二、和methods区别3.计算属性来写setter访问器一、概念计算属性区域类似变量的声明 监听变量 可以缓存之前的变量值默认只能读取 readonly使用get set 访问器 写的值 是可读可写的computed里面不是方法,用的时候都是属性赋值。使用的时候都是以变量形式绑定。(和变量一样,只不过里面可以写复杂的逻辑代码)<template><div id="page"> {{msg.split('').reverse()

2021-08-10 11:26:28 541

原创 Vue2.0——监听器watch

文章目录1.概念2.案例1.概念watch监听器 监听组件上的变化 {{msg}} <input type="text" v-model="msg"> data(){ return{ msg:"9527", } }, methods:{ sendMsg(){ console.log("监听到变化后执行该方法"); } }, watch:

2021-08-10 10:51:33 371

原创 vue数据双向绑定原理 2

原理:1.vue双向数据绑定是通过 数据劫持 结合 发布订阅 的模式来实现的。即数据和视图同步,一方发生变化,另一方也随之变化。【MVVM】2.核心:Object.defineProperty( ) 方法3.Object.defineProperty()方法:(1) Object.defineProperty(obj,prop,descriptor)有三个参数,分别代表:obj (要定义其上属性的对象)prop (要定义或修改的属性)descriptor (具体的改变方法)(2)简单地说

2021-08-06 15:48:33 82

原创 vue数据双向绑定原理

文章目录1.数据双向绑定2.数据双向绑定原理 MVVM3.1.数据双向绑定v-bind属性绑定值 是单向数据绑定(只修改前台数据,后台不变)v-model 表单数据绑定 是数据双向绑定<template> <!-- 表单元素的vlaue绑定 --> <input type="text" :value="value" /> <input type="text" v-model="value" /></template>

2021-08-06 15:28:20 163

原创 vue语法 基本指令

文章目录一.目录及几个主要文件说明二.vue语法vue基本指令1.数据绑定指令2.元素属性绑定 v-bind3.元素显示隐藏4.条件语句指令5.集合绑定 v-for6.类别绑定 class style7.元素的事件绑定一.目录及几个主要文件说明目录结构:build文件:打包之后的项目文件config:配置目录(包括端口之类)node_modules:依赖包文件src:开发目录文件【开发只使用这个】 包括:assets:放置一些图片(如logo)components:放置组件文件。可以不用

2021-08-01 16:40:25 237

原创 vue目录结构&&webpack配置

文章目录一、vue目录结构1.创建项目(简化版)2.配置webpack.config.js二、webpack配置1.什么是webpack2.举例一、vue目录结构完整版中:build文件:打包之后的项目文件config:配置目录(包括端口之类)node_modules:依赖包文件src:开发目录文件【开发只使用这个】包括:assets:放置一些图片(如logo)components:放置组件文件。可以不用App.vue:项目入口文件(可以将组件直接写在这里,而不使用components

2021-07-31 15:42:25 1336

原创 Vue 集成环境开发及项目创建

文章目录一.环境式安装一.环境式安装

2021-07-31 10:28:58 420

原创 js底层 原型链&原型对象

文章目录自定义一个如上Array函数类:prototype原型对象例子es5中没有类,把函数称作类: var arr=new Array(); console.log(arr);__proto__:原型链。原型链指向当前类的原型对象自定义一个如上Array函数类:一个对象的原型链(proto) 指向自身原型对象(prototype)原型对象的构造函数 指向本身(函数本身)函数类的原型属性 prototype===函数类的原型对象 /* * 自定义函数类,写类对象

2021-07-30 02:25:36 107

原创 js三级联动(面向对象)

Option 对象:Option 对象代表 HTML 表单中下拉列表中的一个选项。在 HTML 表单中 标签每出现一次,一个 Option 对象就会被创建。var newOption = new Option("Option text","Option value");selectbox.appendChild(newOption);new Option:作用:用于创建一个新的选项Option()构造函数接受两个参数:文本(text)和值(value);第二个参数可选。这个构造函数

2021-07-19 02:05:54 430 1

原创 正则表达式

文章目录一.作用:二.写法1.修饰符标记2.元字符(拼接表达式的字符)三.正则表达式在代码中如何使用四、例子一.作用:监测字符串在前后端进行表单验证的时候使用,检测用户输入的信息是否合法二.写法/正则符号/修饰符1.修饰符标记i:不区分大小写g:全局匹配(匹配所有)m:多行匹配s:匹配字符圆点.(包含\n) 默认圆点匹配除\n外的任何字符2.元字符(拼接表达式的字符)\:转义字符,\n匹配换行,\\匹配\var s="abc\\def";console.log(

2021-07-18 00:51:30 562

空空如也

空空如也

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

TA关注的人

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