自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 module.exports,export和export default的区别

1.module.exportsmodule变量表示当前的模块,同时该变量是一个对象,module对象会创建一个叫exports的属性,这个属性的默认值是一个空的对象,可以人为为其赋予不同的属性值。//routes.jsmodule.exports.Name="";Tips:在项目中可能存在两种引入module.exports的方式,其根本都是require方式。 方式1.利用ES6的import方法导入方式require引入router模块import router fr...

2021-06-16 15:52:38 1968

原创 页面权限及路由控制

需要实现的功能:不同的权限对应于不同的路由,而侧边栏需要根据不同的权限异步生成。实现方法:分为登录和权限验证两个部分。1.登录:用户填写填写账户密码,向后端验证是否正确,验证通过后返回一个token值,为了避免刷新页面后token丢失,可选择将其存放在cookie中,前端会根据token值去拉取一个接口(user_info)以获取用户的详细信息(eg.用户权限、用户名一类)2.权限验证:通过token以获取用户对应的role,并动态根据用户的role算出其路由权限,并通过router.addRo

2021-06-09 08:45:15 329

原创 TypeScript

1.类型推论let myFavoriteNumber = 'seven';myFavoriteNumber = 7;// index.ts(2,1): error TS2322: Type 'number' is not assignable to type 'string'.上述代码虽然没有指定类型,但是会在编译的时候报错如果定义的时候没有赋值,不管之后有没有赋值,都会被推断成any类型而不被类型所检查到2.联合类型表示取值可以为多种类型中的一种。let my: strin

2020-09-08 13:36:15 291

原创 Vue3.0的优化

重写虚拟DOM 更多的编译时间,同时减少运行时间开销 优化插槽生成 当父组件重新渲染时,其子组件也必须重新渲染,使用vue3可以单独渲染父组件和子组件, 静态树提升 vue3能够检测到什么是静态组件,然后将其提升,从而降低渲染成本,能够跳过整个树结构打补丁的过程。 静态属性提升 静态属性提升,vue3将跳过不会改变节点的打补丁的过程基于proxy的观察者机制...

2020-09-06 15:24:28 237

原创 vue diff算法

patch概念在vue update的过程中,在遍历子代vnode的过程中,会用不同的patch方法来patch新老vnode,如果找到对应的newVnode和oldVnode,就可以直接复用里面的真实dom节点,避免重复创建元素带来的性能开销。patch的过程中,如果当前vnode存在很多children的情况,那么需要分别遍历patch新的children vnode和老的children vnode存在children的vnode类型element元素类型vnode<div&

2020-09-06 09:37:45 302

原创 vue-router实现原理——SPA单页面应用

根据vue-router页面中的mode参数来决定采用哪一种方式1.hash模式(使用URL hash值作为路由,默认模式)hash即浏览器url中#后面的内容,包含#。hash是url的锚点,代表的是网页中的一个位置,单单改变#后面的部分,浏览器只会加载相应位置的内容,不会重新加载页面。#是用来指导浏览器动作的,对服务器完全无用,HTTP请求中,不包含# 每次改变#后的部分,都会在浏览器访问历史中增加一个记录,使用“后退”按钮,就可以回到上一个位置。hash模式通过锚点值的改变,根据不同的

2020-09-04 13:46:44 531

原创 页面生命周期

TIP:在页面中,dom加载和css加载是异步的,内联的css是同步的。 页面中js加载和dom加载是同步的,但也不是绝对的页面的生命周期:DomContentLoaded:dom加载完毕,但是外部资源可能没有加载完毕,如样式表、图片等资源。load:浏览器所有资源加载完毕beforeunload/unload:用户离开页面时触发一般写demo的时候,一般写的内容是:window.onload=function(){}可能会把我们初始化的资源都写在onload中,但是在正常

2020-08-29 20:43:07 281

原创 备战美团面试

localstorage(浏览器本地存储)?超容量会怎么样?localstorage同源问题超容量就会报错同一浏览器的相同域名和端口的不同页面间可以共享相同的 localStorage,但是不同页面间无法共享sessionStorage的信息。页面仅指顶级窗口,如果一个页面包含多个iframe且他们属于同源页面,那么他们之间是可以共享sessionStorage的。SPA如何减少首次请求次数路由懒加载 优化spa应用的首次加载白屏情况css动画:1s后变大,2s后变圆<htm

2020-08-20 17:14:16 143

原创 CDN DNS

前端CDN部署

2020-08-18 15:09:16 152

原创 刷题流程

动态规划:斐波拉契数列 连续子数组的最大值二叉树重建二叉树 树的子结构(先做“相同的树”)

2020-07-27 12:03:42 146

原创 在Vscode中使用uni-app踩坑:Failed to get response from /vue-cli-version-marker

按照uni-app官网操作,在vscode中创建uni-app项目vue create -p dcloudio/uni-preset-vue my-project但是初始化后报错:Failed to get response from /vue-cli-version-marker原因:hadoop的yarn和node的yarn发生冲突解决方法:找到node里yarn所在的位置,将yarn.cmd 改为 yarn-js.cmd以后的yarn指令改为yarn-js...

2020-07-26 14:14:17 601

原创 对象数组去重

//Array.reduce()语法@params pre 表示上一次调用回调时的返回值,或者初始值init;@params cur 表示当前正在处理的数组元素;@params index 表示正在处理的数组元素的索引,若提供init值,则索引为0,否则索引为1;@params arr 原数组@params init 初始值arr.reduce(function(pre,c...

2020-04-29 14:25:28 172

原创 全局监听空格键事件 踩坑

业务需求:页面全局监听空格键事件 ,进行内容提交操作思路1:将事件绑定在全局中问题:全局keyup.space事件 触发页面上其他事件 影响操作(具体原因依然不清楚,不是事件冒泡导致的)思路2:用一个移出可视区的input框进行空格绑定注意:需要设置input框原生属性autocomplete="false" 阻止input中键入内容后出现自动填充效果。 刚...

2020-04-29 13:50:53 1289

原创 git的基本操作

1.master上提交代码git status git add git commit -m"XX" git pull git push2.新建分支git branch -a git branch XX git checkout XX git add git commit git push origin XX3.分支同步master保证本地master最新gi...

2020-04-29 11:38:50 128

原创 页面 登录后页面权限控制

1.登录账户名,密码利用sm2进行加密 登录后保存当前的Token 并调用后端接口查询当前账户的perms值 2.vue-Router中的index.js{ path:'/Dialog', name:'Dialog', redirect:'/Dialog/DialogResult', meta:{ perm:'m:Dialog',//...

2020-04-29 10:27:14 474

转载 前端小白备战实习面试day6—— js的基本类型和引用类型

js的基本类型和引用类型**基本数据类型:**按值访问,可操作保存在变量中的实际的值。基本类型值指的是简单的数据段。基本类型:undefined,boolean,number,string,null**引用类型:**当复制保存着对象的某个变量时,操作的是对象的引用,但在为对象添加属性时,操作的是实际的对象。引用类型值指那些可能为多个值构成的对象。引用类型:object、Array、RegE...

2019-06-05 15:53:02 117

原创 前端小白备战实习面试day5——ajax请求及其响应状态

ajax请求怎么实现,和其中的响应状态创建XHR对象设置响应函数设置要访问的页面发出请求当服务端的响应返回,响应函数被调用。在响应函数中,判断响应是否成功,如果成功获取服务端返回的文本。响应状态...

2019-04-12 21:11:41 194

原创 前端小白备战实习面试day4——String Array Math中常用的方法

4.js中String Array Math中常用的方法String[ ]内的内容选填1、charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码。strObj.charCodeAt(index)说明:index将被处理字符的从零开始计数的编号。有效值为0到字符串长度减1的数字。如果指定位置没有字符,将返回NaN。例如:var str = “ABC”;str....

2019-04-12 20:57:13 321

原创 前端小白备战实习面试day2——js的原型链

2.js的原型原型链我们创建的每个函数都有一个prototype(原型)属性。该属性是一个指针指向一个对象,这个对象的用途是包含特定类型的所有实例共享的属性和方法。换句话说不必在构造函数中定义对象实例的信息,可以将这些信息直接添加到原型对象中。function Person(){ Person.prototype.name="Nicholas"; Person.prototype.age=29...

2019-04-12 15:04:55 288

原创 Vue框架目录结构

归纳总结好的

2019-04-06 21:01:54 1048

原创 前端小白备战实习面试day1——js的作用域作用域链

1. js的作用域作用域链。执行环境 每个函数都有自己的执行环境,当执行流进入一个函数时,函数的环境就会被推入一个环境栈中。函数执行完之后,栈将其环境弹出,把控制权返回给之前的执行环境。当代码在一个环境中执行时,会创建变量对象的一个作用域链。 (执行环境类型一共两种:全局函数和局部函数)作用域链的作用是保证对执行环境有权访问的所有变量和函数的有序访问。作用域链的前端始终都是当前执行的代码所在...

2019-04-05 16:41:08 142

空空如也

空空如也

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

TA关注的人

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