JS
IT go
翩翩少年,鲜衣怒码......
展开
-
【代码分享】vue路由如何自动加载?
每次vue项目新增页面都要重新配置路由,页面多了之后就会导致router文件特别长,当然我们也可以把路由按模块来分开配置,但是始终是需要我们手动去配置,那么有没有一种方法可以减少路由的配置呢?require.context() 为我们提供了解决方案*require.context()*有三个参数,分别是:directory:表示检索的目录useSubdirectories:表示是否检索子文件夹regExp:匹配文件的正则表达式,一般是文件名import Vue from 'vue'.原创 2022-04-27 17:47:29 · 538 阅读 · 0 评论 -
函数防抖与节流
1.函数防抖当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次,如果设定时间之内,又触发了事件,就重新开始延时。也就是说一直触发这个函数,且每次触发函数的间隔小于既定时间,那么防抖的情况下只会执行一次。 // 防抖 function debounce (fn, delay = 500){ let timeout = null return function () { const argue= arguments if (timeout) clearTim原创 2021-08-13 14:05:30 · 150 阅读 · 0 评论 -
js事件委托
js事件委托事件委托是什么?事件委托 本质上是利用了浏览器事件冒泡的机制。因为事件在冒泡过程中会上传到父节点,并且父节点可以通过事件对象获取到 目标节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件,这种方式称为事件代理。为什么要使用事件委托使用事件代理我们可以不必要为每一个子元素都绑定一个监听事件,这样减少了内存上的消耗。并且使用事件代理我们还可以实现事件的动态绑定,比如说新增了一个子节点,我们并不需要单独地为它添加一个监听事件,它所发生的事件会交给父元素中原创 2020-12-16 16:22:11 · 115 阅读 · 0 评论 -
jS之递归
jS之递归及数组扁平化简而言之,递归就是在函数内自己调用自己或者间接调用自己。必要条件,递归必须要有出口,负责会造成栈溢出。(Uncaught RangeError: Maximum call stack size exceeded)递归经典应用场景(斐波那契数列) //斐波那契数列 //1,1,2,3,5,8,13,.... //求第n位数? //根据已知数列可推导: //第一位f(1) = 1; //第二位f(2) = 1; //第三位f(3) = f(3 - 1)原创 2020-10-08 20:00:51 · 243 阅读 · 0 评论 -
html2canvas实现页面截屏功能
html2canvas实现页面截屏功能原理是将需要生成截屏的HTML结构写入Canvas里面,利用Canvas生成页面截图,在浏览器不支持Canvas的情况下,将采用Flashcanvas或ExplorerCanvas技术代替实现 //以vue为例 let that = this; //由于业务需求是进入页面就要生成截图 所以利用setTimeOut等待页面加载完成时在进行截图 setTimeout(() => { //等待页面渲染完成原创 2020-07-12 19:13:59 · 798 阅读 · 0 评论 -
在页面写入一个HTML文档
在页面写入一个HTML文档业务场景:后端接口返回一个支付的HTML文档 前端拿到数据后在页面把HTML文档渲染出来并支付确认订单页,调支付接口// 微信公众号支付 async wxPayment() { // debugger const ua = window.navigator.userAgent.toLowerCase(); if(u...原创 2020-05-07 22:23:25 · 353 阅读 · 0 评论 -
Bash64转文件并下载
Bash64转文件并下载// 导出按钮 handleExport() { this.$confirm('确认导出?', '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { ...原创 2020-05-07 22:02:29 · 555 阅读 · 0 评论 -
JS闭包
JS闭包先贴一段代码,如下: function Test(){ var arr = []; for(var i = 0; i < 10; i++){ arr[i] = function () { console.log('打印:' + i ) } } return arr; } var myArr = Test(); //在我的想象中,函数执行结...原创 2020-03-21 17:26:39 · 213 阅读 · 0 评论 -
JS函数体内预编译
JS预编译预编译:1:创建一个AO对象(Active Object),执行期上下文2:找形参和变量申明,并把形参和变量声明的名作为AO对象的属性名3:形参和实参的值相统一4:在函数体里面找函数声明,赋值于函数体 function Test(a){ console.log(a); var a = 123; console.log(a) function a () {...原创 2020-03-20 13:08:52 · 197 阅读 · 0 评论