vue点击空白处

2021-04-26
阅读 1 分钟
1.4k
{代码...} 使用 {代码...}

Promise A+ 规范

2021-04-08
阅读 1 分钟
1k
一个promise的当前状态只能是pending、fullfilled和rejected三种,状态改变之恩那个是pending->fullfilled或pending->rejected,状态改变不可逆

webpack

2021-04-08
阅读 1 分钟
895
webpack是一个JS应用打包器,它借助loaders(比如 sass-loader)和plugins(比如UglifyJsPlugin)将各种形态的的文件压缩、打包、优化,变成浏览器可以正常解析的文件。

vue与小程序的生命周期

2021-04-08
阅读 1 分钟
3.4k
VUE的生命周期 {代码...} 由上分析各个生命周期的情况以及可以做的事情: {代码...} 小程序的生命周期 {代码...} vue Router 钩子函数全局钩子函数 {代码...} 路由独享的守卫 {代码...} 组件内的守卫 {代码...}

JS模块化历程

2021-03-29
阅读 3 分钟
829
转折点: 2009年美国大神程序员发明了nodeJs用于服务端编程,服务端必须要有模块,因为要跟操作系统和其他应用互动,否则无法编程,所以引出了commonJs规范

vue2和vue3的数据绑定原理

2021-03-24
阅读 5 分钟
8k
所以再初始化Vue时,对data进行了劫持,每个属性都通过Object.defineProperty变成了getter/setter,一旦数据发生改变,就会触发set,然后去更新view

Set,Map,WeakSet,WeakMap

2021-03-23
阅读 2 分钟
887
Set是一种集合,形式是[value, value],即key跟value是一致的所以可以用new Set()来去重,因为不可能存在相同的key

BUG记录

2021-03-23
阅读 1 分钟
1.2k
小程序canvas保存图片空白小程序canvas绘制图片时,必须先要把图片下载下来,先调用wx.getImageInfo返回临时路径,再绘图小程序canvas保存图片闪退canvas太大,需要控制宽高小于2000px,图片最好使用压缩图片

JS原型以及类

2021-03-23
阅读 3 分钟
1k
通过类Person的构造函数实例化了一个对象person,person继承了类的add方法ES6之前是没有类的概念,所以要实现上面的操作,需要function出马

一些JS概念

2021-03-22
阅读 1 分钟
855
变量提升JS引擎的工作方式:先解析代码,获取所有被声明的变量,然后再一行一行的运行 {代码...} 相当于 {代码...} 这就是变量提升函数声明也会提升,并且优先于表达式 {代码...} 暂时性死区ES6的let\const不会变量提升 {代码...} 因为let不会变量提升,所以在声明前调用会报错 {代码...} ES6规定,let/const命令会使区...

闭包

2021-03-22
阅读 3 分钟
1.4k
何为闭包一个函数包裹另一个函数,被包裹的函数成为闭包函数,外部函数为闭包函数提供了一个闭包作用域???基本案例 {代码...} 所以,闭包函数必须要被外部变量持有???例二 {代码...} 所以,被包裹的闭包函数是否被外部变量持有并不是形成闭包的条件例三 {代码...} 依旧形成了闭包,因为闭包作用域是内部所有闭包函...

浏览器垃圾回收

2021-03-22
阅读 2 分钟
1.8k
垃圾回收算法(v8)可达性:从根节点出发,遍历所有的对象,可以遍历到的对象,就是可达的 根节点包含:全局变量window文档DOM树存放在栈上的变量例 {代码...} 如果此时,将另外一个对象赋给a {代码...} 那么从根节点栈dog一步一步遍历,发现堆Array是不可达的,那么它就要被回收掉。此时会引出一个概念:内存碎片内存碎片就...

前端缓存

2021-03-19
阅读 2 分钟
1.3k
缓存首先得有个位置放置,共有4个:service worker: 浏览器与服务器之间的中间人角色,可以自由控制缓存文件memory cache:内存缓存,一般用来缓存html页,图片,脚本等disk cache:硬盘缓存,一般用来缓存大文件,或者csspush cache: HTTP2产物,以上3种缓存都取不到的时候才能轮到它主要探讨内存缓存和硬盘缓存===谁来...

准备工作选项

2021-03-12
阅读 1 分钟
831
vue常用原理 源码vue3.0https缓存webpack原型、this、闭包、箭头函数、

跨域是浏览器的限制,跟服务器什么关系

2021-03-11
阅读 1 分钟
2.7k
首先,跨域是因为浏览器的“同源策略”问题,跟服务器没有关系。因为“同源策略”,不同源之间的站点:无法访问对方存储在浏览器中的数据,比如localStorage, IndexedDB,CookieDOM无法获得AJAX请求不能发送不同源站点的通信可以通过以下方法:通过设置相同的document.domain可以共享cookie,也可以用于父子窗口获取彼此Dom通...

elementui预览图片按钮触发

2021-03-09
阅读 1 分钟
5k
elementui图片预览的官方文档 {代码...} 预览功能是通过点击图片触发的,然而需求是通过按钮触发预览 {代码...} 首先,页面中必须存在该dom,并且设置ref属性 {代码...} 然后通过设置showViewer实现预览效果 {代码...} 样式是重点,图片必须在页面上存在,不能设置display:none,也不能设置width:0;height:0,否则不能触发

JS生成海报

2021-03-09
阅读 1 分钟
2.6k
下载html2canvas {代码...} 如果生成过程中图片不显示,有可能是跨越问题,需要涉及到CORS

JS设计模式

2021-03-08
阅读 1 分钟
910
Module模式 {代码...} 优点:因为闭包原理,实现了私有变量字面量模式 {代码...} 优点: 一个字:看起来高级constructor模式 {代码...} 跟“工厂模式”一样,缺点是alert每次都得初始化,而且没法继承 优化: {代码...}

观察者模式与发布订阅模式(简易版)

2021-03-03
阅读 2 分钟
1.2k
网上的大部分例子有些太官方,说实在的有点不好理解,说下个人粗浅见解观察者模式这是一个女神和备胎们的故事 {代码...} 女神Lisa的角色就是一个“观察者”,她发现她中奖了,所以发了消息给备胎们优点: 一对多,降低耦合发布订阅模式这是一个相亲机构的故事 {代码...} 知识点: 此时出现了“字面量模式”此时有两位男士订...

前端开发中的try...catch

2021-01-12
阅读 3 分钟
3.3k
基本结构 {代码...} catch捕获的Error对象中包含以下属性:name:是错误的名称,例如 “Error”, “SyntaxError”, “ReferenceError” 等。message:有关错误详细信息的消息。stack:是用于调试目的的错误的堆栈跟踪。JavaScript 有以下内置错误,这些错误是从 Error 对象继承而来的EvalError:表示关于全局eval()函数的错误,...

前端面试题之forEach跳出循环

2021-01-07
阅读 1 分钟
5.9k
forEach相比较for,for..in,for..of循环,缺点就是不能continue 和break,但是可以通过其他方式实现continue实现方式:return {代码...} break实现方式:throw new Error()配合try..catch {代码...} 多层循环 {代码...}

vue+elementui通用弹窗(新增+编辑)

2021-01-06
阅读 4 分钟
6.2k
组件模板 {代码...} 弹窗的内容根据传入的数据去渲染,数据格式如下 {代码...} 组件data和props {代码...} 组件数据的监听 {代码...} 数据提交以及验证 {代码...} 代码在此

前端面试题之BFC

2021-01-06
阅读 2 分钟
1.2k
BFC = Box + Formatting context Box是CSS布局的基本单位,一个页面由很多个Box组成,根据display属性,又分为block-level box,其display为block,list-item,table;另一个为inline-level box,其display为inline,inline-block,inline-table

小程序canvas大转盘

2021-01-06
阅读 5 分钟
1.4k
wx.canvasToTempFilePath 特别重要,必须将canvas转换为图片在页面上渲染,不然会出现各种问题,canvas用translateY移出页面显示 另外wx.canvasToTempFilePath必须写在setTimeout里面,不然安卓机的图片是黑屏

小程序全局授权弹窗

2021-01-05
阅读 3 分钟
5.8k
首先,因为小程序没有app.wxml,所以自定义弹窗必须写成组件,除非使用微信自带的弹窗。 {代码...} {代码...} 写好弹窗组件后,全局引入 {代码...} 弹窗的显示控制就交给Mixin {代码...}

JS常用积累

2021-01-05
阅读 1 分钟
867
复制到剪贴板 {代码...} 获取url参数 {代码...}

JS日期的格式化

2021-01-05
阅读 2 分钟
3.1k
在Date原型链上扩展 {代码...} Vue filter {代码...} 获取指定日期的年月日 {代码...} 将时间转换为13位时间戳 {代码...} 比较两个时间的差时 {代码...}

iphoneX的适配问题

2021-01-05
阅读 1 分钟
1.6k
iphoneX以及以上全面屏手机,上面有个刘海,下面有一条黑线,所以会出现两种情况:页面全覆盖viewport-fit=cover,刘海和黑线挡住了部分页面页面自适应viewport-fit:contain,页面上下左右默认会有个缩进,这样页面虽然全部显示,但是缩进的区域的背景色与页面不搭传统做法获取设备信息,然后用设备信息一个一个去匹配,...

element-ui 表格设置显示列

2021-01-05
阅读 2 分钟
3.4k
先写一个设置显示列的组件 {代码...} 父组件:1.声明一个表格列的对象 {代码...} 2.加载组件ym-set-cols {代码...} 3.渲染表格 {代码...}

vue自定义组件v-model

2021-01-05
阅读 1 分钟
988
自定义组件ym-set-cols {代码...} 父组件调用 {代码...} v-model语法糖就相当于:cols="tableCols" @complete="changeCols"