- 博客(12)
- 收藏
- 关注
原创 html转pdf分页问题终极解决方案 k-htmlpdf
jspdf分页有个比较不好的地方就内容过长的时候虽然会虽然能做到分页,但是会把内容给截断,解决思路是给每个可能会被截断元素加上类,然后动态的计算该元素的位置是否在下一页和上一页之间,如果在的话就添加一个空白元素把这个元素给挤下去,这样就能实现了......
2022-06-23 09:25:11
2917
4
原创 使用ES6 的Proxy实现数组负索引
let arr = [1,2,3,45,6,7]const arrProxy = new Proxy(arr,{ get(target,proerpty){ if(proerpty>=0){ return Reflect.get(target,proerpty) } return Reflect.get(target,target.length+Number(proerpty)) }})console..
2021-08-17 17:54:36
225
原创 javascript统计字符串出现的不重复字符最长长度
function total(str) { let len = str.length if (len < 1) return 1 let total = 0 let k = 0 // 每次需要计算量 for (let i = 1; i < len; i++) { let j = i - 1 let count = 0 while (j >= k && str
2021-08-17 17:53:17
207
原创 js的单例模式
传统单例模式 保证一个类仅有一个实例,并提供一个访问它的全局访问点。实现单例核心思想 无非是用一个变量来标志当前是否已经为某个类创建过对象,如果是,则在下一次获取该类的实例时,直接返回之前创建的对象,接下来我们用JavaScript来强行实现这个思路,请看代码: class Db { //ES6类的静态方法(只能直接由类名调用的方法):static getInstance //ES6类的静态属性:直接挂载在类名上的方法,如:Db.instance() static
2021-08-17 17:50:59
685
原创 javascript的闭包和回调
1.闭包闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。直观的说就是形成一个不销毁的栈环境。js闭包典型的运用场景就是计算器困境: function add() { var counter = 0; return counter += 1; } console.log(add()) console.log(add()) console.log(add())如上面的代码本意是输出3,最终输出的确都是
2021-08-17 17:49:55
335
原创 promise原理
js Promise 实现原理(手写)一. 简单实现调用 then 方法,将想要在 Promise 异步操作成功时执行的 onFulfilled 放入callbacks队列,其实也就是注册回调函数,可以向观察者模式方向思考;创建 Promise 实例时传入的函数会被赋予一个函数类型的参数,即 resolve,它接收一个参数 value,代表异步操作返回的结果,当异步操作执行成功后,会调用resolve方法,这时候其实真正执行的操作是将 callbacks 队列中的回调一一执行;class Pro
2021-08-17 17:47:04
798
原创 vue3的响应式原理和虚拟DOM
为啥使用Proxy?而弃用definePropertydefineProperty不会对数组每个元素都监听,提升了性能.(arr[index] = newValue是不会触发试图更新的,这点不是因为defineProperty的局限性,而是出于性能考量的)defineProperty不能检测到数组长度的变化,准确的说是通过改变length而增加的长度不能监测到(arr.length = newLength也不会)。所以Vue2是不能检测对象属性的添加或删除的。相对于defineProperty,
2021-08-17 17:45:18
288
原创 vue-qr和html2canvas的简单使用
title: vue-qr和html2canvas的简单使用date: 2021-03-15 11:06:51tags: [‘element-ui’,‘js’]categories: [‘Vue’]安装导入插件npm install --save html2canvasnpm install --save vue-qr import vueQr from "vue-qr"; import html2canvas from "html2canvas";html 部分 .
2021-03-15 16:07:11
219
原创 使用js封装vue组件,可以发布到npm
使用js封装vue组件,可以发布到npmvar Child = { template: '<div>A custom component! {{msg + "----" + title + "-----" + content}}</div>', props: ['title', 'content'], data: function() { return { msg: '子组件本身的数据' } }, }ex
2020-11-23 11:49:11
176
原创 Element UI 级联选择器的动态加载用法
Element UI 级联选择器的动态加载用法html 部分 <el-cascader size="mini" clearable placeholder="请选择地址" @change="cascaderChange" v-model="searchForm.detailAddress" :props="cascaderProps" >&l
2020-11-03 09:36:46
1866
3
原创 在使用数组的时候,有时候会需要遍历替换子节点
在使用数组的时候,有时候会需要遍历替换子节点例如 arr = [{ a:1, b:2, subList:[{ a:1, b:2 subList:[ a:1, b:2 ] } ] }, { a:1, b:2, } ] 现在将arr数组中的所有subList 节点名替换成 children1. 使用map循环替换子节点
2020-10-30 17:17:19
168
原创 Node.js 删除文件夹以及文件夹下所有文件函数
Node.js 删除文件夹以及文件夹下所有文件函数这是我的第一篇博客,作为一个技术积累的起点吧node.js的fs模块在删除文件夹时,如果文件夹非空就会报错,因此自己封装了一个方法。废话少说直接上代码const fs = require('fs')// path:要删除的文件夹路径onst removeFileDir = (path)=>{ var files = fs.readdirSync(path); for (let item of files) {
2020-10-30 16:44:21
1219
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人