- 博客(17)
- 资源 (1)
- 收藏
- 关注

原创 模拟实现一个 localStorage
使用indexedDB 模拟实现一个基础的 localStorage进入正文之前我们先来了解一下,indexedDB的几个基础操作。IDBOpenDBRequest:IndexedDB API的接口使用特定的事件处理程序属性,提供对打开或删除数据库(使用IDBFactory.open和执行IDBFactory.deleteDatabase)的请求结果的访问。我们可以通过indexedDB...
2020-01-26 22:55:39
996

原创 腾讯云对象存储COS的使用教程,node获取签名,js上传
腾讯云对象存储的使用这里忽略创建存储桶之类的操作。说明:本示例使用nuxt服务端渲染 + koa框架万事第一步:npm install ~~~npm i qcloud-cos-sts --savenode sdk注意:qcloud-cos-sts 只能在服务端中使用。第二步:设置授权策略// 示例 创建一个oss文件夹在controllers下面,项目结构自行更改。// ../c...
2019-10-31 09:31:00
4315
2

原创 vh、vw、rem究极适配方案
实现不同倍率设计图同时用px开发,使用vw vh 与 rem 共存方式解决问题。在开发中经常会用到ui框架,本例使用vant ui框架。一般我们在移动端项目开发中都会使用px然后通过postcss 转换成 rem或vw vh 进行适配 ,但是遇到ui框架与设计图像素倍率不同的时候,都会选择修改设计图像素倍率进行兼容ui框架。或者也有人使用postcss的 selectorBlackList:...
2019-08-01 14:56:52
2545
原创 docker部署前端项目,区分开发环境,生产环境 ~ 本文基本适用于所有前端工程化项目
通过docker部署前端项目,包括node服务~稍微修改,也可以适用于所有前端框架。简版demo请看上一篇文章。https://blog.youkuaiyun.com/qq_40146880/article/details/112474594本文使用next.js框架来做一个说明,其实和用什么框架并没有任何关系,基本通用默认大家都装好了docker 和 docker-compose先上一个package.json配置"scripts": { "dev": "next -p 8081", /
2021-01-12 20:24:07
2587
原创 docker部署项目(vue/react/node/web......)
docker 项目部署我默认你已经安装了 docker 儿~先说一下,下面执行可能会遇到的问题。Permission denied运行shell报错:Permission denied 意思就是没有权限。使用命令:chmod 777 ***name***.sh ,修改该文件***name***.sh 的权限,然后再执行上面第二步的操作即可。bash: vi: command not found 这是因为vim没有安装。使用如下命令安装:apt-get updateapt-get
2021-01-11 17:05:51
702
原创 隔位连接,输入 '1, 2, 3, 5, 7, 8, 10' 输出 '1~3, 5, 7~8, 10'
输入 '1, 2, 3, 5, 7, 8, 10' 输出 '1~3, 5, 7~8, 10'const str = '1, 2, 3, 5, 7, 8, 10';// 格式化数据const trimStr = [...new Set(str.split(',').map(x => x.trim()))].join(',');let result = [];const change ...
2020-01-28 18:06:35
497
原创 实现一个简单的全局存储器
有的时候项目比较小的时候,我们不想使用vuex也不想使用Storage,那么我们就来自己造一个存储器。const name = Symbol('storeMock');const storeMock = Object({ [name]: {}, getItem(key) { return storeMock[name][key]; }, setItem(key, va...
2020-01-26 23:41:07
297
原创 反转链表,每 k 个节点反转一次,不足 k 就保持原有顺序
// 反转链表,每 k 个节点反转一次,不足 k 就保持原有顺序// 构建链表function list(...val) { let obj = val.reverse().map((res, i) => Object.assign({}, { [i]: new Node(res) })); for (let item in obj) { if (item...
2019-09-20 18:34:10
382
原创 模拟实现一个深拷贝,并考虑对象相互引用以及 Symbol 拷贝的情况
对于 symbol 通过查看文档可以知晓:当使用 JSON.strIngify() 时以 symbol 值作为键的属性会被完全忽略,Symbols 在 for...in 迭代中不可枚举。另外,Object.getOwnPropertyNames() 不会返回 symbol 对象的属性,但是你能使用 Object.getOwnPropertySymbols() 得到它们。因此,要实现一个深拷贝,并...
2019-09-20 11:58:08
882
原创 js希尔排序注解
/** * 生成随机数组 * @param */ function randoms(num, max, min) { return Array.from({ length: num }).map(() => Math.ceil(Math.random() * (max - min) + min)); } let num1 = randoms(3...
2019-09-18 18:01:21
129
原创 普通遍历递归深拷贝,Array.from()深拷贝,split("")截取,Array.from()数组转化的性能对比。
new Array(10000000)量级下,普通遍历递归深拷贝,Array.from()深拷贝,split("")截取,Array.from()数组转化的性能对比。let String = new Array(10000000).fill(0).join('');console.time('Array.from');Array.from(String);console.timeEnd(...
2019-09-11 16:17:36
798
原创 pwa + history 模式 基础vue-cli3项目配置
1.history模式配置(设置mode:为history, base:基路径’nginx上配置的目录’)。2.开启pwa配置,同时附上vue-cli3脚手架build及dev配置。(vue.config,js)3.registerServiceWorker.js里面,配置内容更新时刷新页面。5.附上本地调试nginx配置。6.http axios拦截器。7.postcss 使用vw v...
2019-08-26 15:27:17
627
原创 es6中的箭头函数是否可以使用new实例化?与普通函数有什么区别?new的实质是什么?如何手动写一个new?
箭头函数、没有prototype、没有自己的this指向、不可以使用arguments、自然不可以new。 let fun = (a, s) => {}; console.dir(fun); // --- > 从
2019-08-21 10:51:20
7324
原创 js 深拷贝浅拷贝,以及堆栈存关系。
先引用一篇文章JavaScript中的堆栈,作者写得很好。如果看完上面推荐的文章还没有理解堆栈存与深拷贝与浅拷贝的关系,请看
2019-08-06 15:42:11
383
原创 对象的广度优先遍历和深度优先遍历,以及递归实现深拷贝。
废话不多说直接上代码,新建一个对象。let obj = { a: { A: { end: true }, B: 2, C: 3, }, b: 2, c: { c2: { cend: 3 } }, d: 4};广度优先遍历 深度优先遍历,先将obj转化成可迭代对象,在里面执行递归函数,将深层对象作为递归函数的参数传入。 * 对象的深拷贝也可...
2019-08-02 17:20:16
796
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人