- 博客(27)
- 收藏
- 关注
原创 文件下载相关
Blob数据下载:1、返回数据类型(responseType:'blob')2、读取请求返回的头部信息里的content-disposition,返回的文件名在这里面,(如果不需要此文件名,则可跳过此步骤)3、使用URL.createObjectURL将请求的blob数据转为可下载的url地址4、使用a标签下载let blob = res.data 或者let blob = new Blob([res.data],{type:"application/vnd.ms-excel"})
2022-04-22 16:31:02 196
原创 CSS---->linear-gradient、radial-gradient
如题:使用CSS绘制以下图像,宽300px, 高300px,颜色值为black和white,24个条纹均匀分布。思路:24条,一半12条,300/12=25,所以一个颜色条25px, 共 2个颜色条,所以size为50px.方案:#id{background-image:linear-gradient(45deg,white 25%, black 0, black 50%, white 0, white 75%, black 0);background-size:50px 50px;.
2021-08-01 20:58:29 1260
原创 MVC、MVVM、MVP
MVC:view传送指令到controllercontroller 完成业务逻辑后,要求model改变状态model将新的数据发送到view,用户得到反馈所有通信都是单向的。MVP:MVVM:
2021-07-25 18:38:18 137 1
原创 Webpack理解
一、Vue router 除了 router-link 怎么实现跳转? router.go(-1); router.push('/')二、Vue router 跳转和 location.href 区别? router 是hash改变 location.href 是页面跳转,刷新页面三、forEach 和 map 区别 相同点:1.都是循环遍历数组中的每一项 2....
2021-07-25 16:59:58 109
原创 JS相关--->原型链、原型、作用域、继承
js原型和原型链是:1、原型是一个可以被复制的一个类,通过复制原型可以创建一个一模一样的新对象;2、原型链是原型对象创建过程的历史记录,当访问一个对象的某个属性时,会先在这个对象本身属性上查找。...
2021-07-25 13:50:24 130
原创 JS相关--->防抖与对象拷贝
防抖函数(立即与非立即执行) 防抖函数 原理:当一个函数连续触发,只执行最后一次。 实现方式:1、let flag = false;submit.onclick = function(){ if(flag) return; flag = true; cosnsole.log('OK'); setTimeout(() => { flag = false; },1000);}------------...
2021-07-24 21:40:48 82
原创 async / await 与 Promise
await 操作符用于等待一个Promise对象。它只能在异步函数async function中使用。
2021-07-24 13:32:57 307
原创 http与https区别&http缓存知识点
HTTPS和HTTP的区别主要如下: 1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。 2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。 3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。...
2021-07-18 22:44:50 277 1
原创 jQuery知识点
JavaScript window.onload事件和 jQuery ready函数有何不同?解释:前者除了需要等待DOM被创建还要等到包括大型图片、音频、视频在内的所有外部资源都完全加载。用户会感到有明显的延迟。 后者只需要对DOM树的等待,而无需对图像或外部资源加载的等待,从而执行起来更快。另一个优势是,jQuery ready函数可以在网页里多次使用,浏览器会按照它们在HTML页面里出现的顺序执行它们,相反对于onload技术而言,只能在单一函数里使用。Css选择器优先级...
2021-07-18 22:28:30 114 1
原创 Vue生命周期知识点
父子组件的生命周期:执行顺序:1、父组件开始执行到beforeMount然后开始子组件执行,最后是父组件mounted. 2、如果有兄弟组件,父组件开始执行 到beforeMount,然后兄弟组件依次执行到beforeMount,然后按照顺序执行mounted,最后执行父组件的mounted. 3、当子组件挂载完成后,父组件才会挂载。】 4、当子组件完成挂载后,父组件会主动执行一次beforeUpdated/updated钩子函数(仅 首次) ...
2021-07-18 21:58:06 242
原创 事件委托/冒泡
原理 : 利用事件冒泡的机制优点 :提高Javascript性能,减少内存消耗 动态添加DOM元素缺点 :事件委托基于冒泡 , 对于不冒泡的事件不支持 层级过多,冒泡过程中,可能会被某层阻止掉 把所有事件都用代理就可能会出现事件误判,好比把不应该触发事件的 绑上了事件.浏览器渲染页面的过程与原理浏览器渲染的过程主要包括以下五步:浏览器将获取的HTML文档解析成DOM树。 处理CSS标记,构成层叠样式表模型CSSOM(CSS Object Model)。 将DOM和CSSOM
2021-07-18 16:42:26 112 1
原创 Vue相关--->发布与订阅、单页面
一、Vue router 除了 router-link 怎么实现跳转? router.go(-1); router.push('/')二、Vue router 跳转和 location.href 区别? router 是hash改变 location.href 是页面跳转,刷新页面三、forEach 和 map 区别 相同点:1.都是循环遍历数组中的每一项 2....
2021-07-18 16:33:03 190
原创 Promise知识点
一、Promise对象用于表示一个异步操作的最终完成(或失败)及其结果值。一个Promise必然处于一下几种状态之一:1、待定(pending):初始状态 ,既没有被兑现,也没有被拒绝。2、已兑现(fulfilled):意味着操作成功完成。3、已拒绝(rejected):意味着操作失败。只有异步操作的结果,可以决定当前是哪一种状态,任何其他操作都无法改变这个状态。二、一旦状态改变,就不会再变,任何 时候都可以得到这个结果。Promise对象的状态改变,只有两种可能:从Pending变
2021-07-14 23:06:14 171
原创 同源策略 && 跨域
在浏览器中,保证访问数据安全 的基础就是同源策略。同源策略的三大要素:协议相同、域名相同、端口 相同。同源策略是一个重要的安全策略,它用于限制一个origin的文档或者它加载的脚本 如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。同源的定义:如果两个URL的 protocol、port(en-US)(如果有指定的话)和host都相同的话,则这两个URL是同源。这个方案也被称为“协议/主机/端口元祖”,或者直接就是“元祖”。(“元祖”是指一组项目构成的整体,双重/三重/
2021-07-14 22:22:44 1144
原创 VUE虚拟DOM知识点
虚拟DOM将 DOM树转换成一个JS对象树,diff算法逐层比较,删除,添加操作,但如果有多个相同的元素,可能会浪费性能,所以react和vue-for引入key值 进行区分。虚拟DOM的实现原理主要包括以下3部分:1、用JavaScript的对象模拟真实DOM树,对真实DOM进行抽象;2、diff算法--比较两棵虚拟DOM树的差异;3、pach算法--将两个虚拟DOM对象的差异应用到真正的DOM树。优点:1、保证性能下限:虽然性能并不是最优的,但比起粗暴的DOM操作性能要好很多,虚
2021-07-14 21:56:25 182
原创 截取字符串的几种方式
一、正则匹配 例子:let str = 'ycc?name=cc&sex=woman' 截取字符串 name=cc let newStr = str.match(/\?(\S*)&/)[1] 截取字符串 ycc let newStr = str.match(/(\S*)\?/)[1] 截取字符串name=cc&sex=woman let...
2021-07-09 23:57:18 27993
原创 前端缓存方式
一、微任务与宏任务执行顺序二、session 、 cookie 知识点三、get、post 知识点四、localStorage、sessionStorage 知识点五、防抖函数(立即与非立即执行)六、堆和栈 知识点
2021-07-05 21:03:10 151
原创 JS相关----> 数据类型
1、javascript的typeof返回哪些数据类型。 string、boolean、number、undefined、function、object2、split() 、join() 的区别 前者是将字符串切割成数组的形式,后者是将数组转换成字符串3、数组方法pop()、push()、unshift()、shift() push() 尾部添加 pop() 尾部删除 unshift() 头部添加 ...
2021-07-03 11:26:11 112
原创 JS算法示例
一、去重function removeDuplicate(arr){ var exists ={}, outArr = [], elm; for(var i=0; i<arr.length; i++){ elm =arr[i]; if(!exists[elm]){ outArr.push(elm); exists[elm] = true; } } ret
2021-07-02 20:53:22 147
原创 ES6知识点详解
一、不存在变量提升let不像var那样会发生‘变量提升’现象,所以,变量一定要在声明之后使用,否则报错console.log(a); //输出undefinedconsole.log(b); //报错ReferenceErrorvar a = 1;let b = 1;二、会产生暂时性死区只有块级作用域内存在let命令,它所声明的变量就‘绑定’这个区域,不再受外部的影响var tmp =123;if(true) { tmp = 'abc'; //ReferenceErr.
2021-07-01 22:09:10 1161
原创 Vue-Router
重定向页面 const router = new VueRouter({ routers:[ 1、 {path:'/a',redirect:'/b'} 2、 {path:'/a',redirect:{name:'foo'}} ]})这是两种方式2.路由导航守卫和Vue实例生命周期钩子函数的执行顺序答案:路由导航守卫都是在Vue实例生命周期钩子函数之前执行的3.切换路由后,新页面要滚动到顶部或者保持原先的滚动位置如何设置const r..
2021-06-30 22:01:17 193
原创 VUE组件通信
1、Vue通信的几种方式Prop(父传子) $emit(子传父) provide和inject(父组件provide 子组件inject) $attrs和$listeners Vuex 专门为vue.js应用程序开发的状态管理模式 事件总线(bus),即发布订阅的方式 $root 与 $parent 使用较少但也会用到(如果当前没有父实例就是自身实例)2、 Vue实现按需加载组件方式1、使用() => import() 如下:const ComponentA = (...
2021-06-27 22:32:09 84 1
原创 VUE数据双向绑定
1、Vue响应式原理当一个Vue实例创建时,vue会遍历data选项的属性,用Object.defineProperty将它们转为getter/setter并且在内部追踪相关依赖,在属性被访问和修改时通知变化。每个组件实例都有相应的watcher程序实例,它会在组件渲染的过程中把属性记录为依赖,之后当依赖项的setter被调用时,会通知watcher重新计算,从而致使它关联的组件得以更新。2、 Vue组件内部实现数据双向绑定原理此问题就是再问父子组件如何传递信息: 父组件通过props传值.
2021-06-25 23:18:41 170
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人