自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 uni-app中uni-ui和vant-weapp冲突

1. 需要下载vant的weapp版源码,将dist目录复制到uniapp项目中,路径:项目/wxcomponents/vant2. 引入后hbuilderx会自动给每个组件生成一个vue文件,但是会包一层uni-shadow-root,如果同时使用uni官方的组件且是通过easycom的custom使用的,则会冲突,需要将正则改为^uni-((?!(shadow-root)).*)3. 如果报了vant的css错误(Unclosed bracket),则全局搜索https://img.yzcdn.cn

2021-03-18 22:14:52 1036

原创 JavaScript中实现不可变对象 --- immer

实现不可变数据有三种主流的方法深克隆,但是深克隆的性能⾮常差,不适合⼤规模使用Immutable.js,Immutable.js 性能良好,但是需要学习额外的APIimmer,利用Proxy特性,⽆需学习额外的api,性能良好immer的使用方法安装immeryarn add immer 或者 npm install immer --saveimport { produce } from 'immer'const currentState = { name: '圣斗士', age: 2

2021-03-13 15:05:43 612

原创 手写一个setInterval

setInterval定时器的一些问题// setInterval的所用是每隔一段指定的时间执行一个函数,但是这个执行不是真的到了时间立即执行,// 它真正的作用是每隔一段时间将事件加入事件队列中去,只有当前的执行栈为空的时候,才能去从事件// 队列中取出事件执行。所以可能会出现这样的问题,就是当前执行栈执行的时间很长导致事件队列里面// 累积多个定时器加入的事件,当执行栈结束的时候,这些事件会依次执行,因此就不能做到每隔一段时间// 执行的效果了// 针对setInterval的这个缺点,我们

2021-03-05 16:32:52 481

原创 JavaScript深入理解之对象创建

在 JavaScript 中虽然 Object 构造函数或对象字面量都可以用来创建单个对象,但是这些方法都有一个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。为了解决这些问题,人们提出了很多对象创建的解决办法,下面是我对 JavaScript 对象创建的一些理解和总结。1. 工厂模式抽离了创建的过程function createPerson(name, age, job){ var o = new Object(); o.name = name; o.age =

2021-02-27 13:17:01 180

原创 什么是pnpm

什么是 pnpm ?pnpm 的官方文档是这样说的: Fast, disk space efficient package manager因此,pnpm 本质上就是一个包管理器,这一点跟 npm/yarn 没有区别,但它作为杀手锏的两个优势在于:包安装速度极快;磁盘空间利用非常高效。安装方法npm i -g pnpm1. 速度快在绝多大数场景下,包安装的速度都是明显优于 npm/yarn,速度会比 npm/yarn 快 2-3 倍。2. 高效利用磁盘空间不会重复安装同一个包。用

2021-02-23 21:26:10 2125 1

原创 Web Worker在vue中的使用

installyarn add vue-workerusage// main.jsimport VueWorker from 'vue-worker'Vue.use(VueWorker)// 注册之后就在Vue的原型对象上挂载了$worker,您可以使用this.$worker来访问使用worker.vue文件中 // 通过this.$worker.run这个方法,跑起一个worker, // worker是在另外的线程里面跑的,所以可以在run的第一个参数函数里面执行一个非常大

2021-02-18 16:34:10 1715

原创 前端模块化:CommonJS,,ES6

什么是前端模块化模块化的开发方式可以提高代码复用率,方便进行代码的管理。通常一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数。一、CommonJSNode.js是commonJS规范的主要实践者,它有四个重要的环境变量为模块化的实现提供支持:module、exports、require、global。实际使用时,用module.exports定义当前模块对外输出的接口(不推荐直接用exports),用require加载模块。// a.jsmodule.exports = {

2021-02-03 20:59:19 287

原创 前端安全

XSS跨站脚本攻击注入恶意代码到网页,并使用户加载执行非持久型 (url)持久性 (存入到数据库中)防御方式1.使用 html转义 , 对所有外部插入的代码都应该做一次转义3. 开启CSP防护。在HTTP响应头中设置Content-Security-Policy : ‘self’CSRF跨站请求伪造在a网站中点击某个小广告 小广告中的js代码执行 向a网站发送请求由于用户已经在a网站中登录了 因此请求携带了网站a的相关cookie凭证,最后请求成功执行.防御方式1.设置

2021-01-27 12:49:28 91

原创 跨窗口通信

postMessage 接口允许窗口之间相互通信,无论它们来自什么源。因此,这是解决“同源”策略的方式之一。它允许来自于 john-smith.com 的窗口与来自于 gmail.com 的窗口进行通信,并交换信息,但前提是它们双方必须均同意并调用相应的 JavaScript 函数。这可以保护用户的安全。这个接口有两个部分。postMessage想要发送消息的窗口需要调用接收窗口的 postMessage 方法。换句话说,如果我们想把消息发送给 win,我们应该调用 win.postMessage(

2021-01-26 22:09:25 308

原创 css中的那些坑~

今天在写页面的时候发现个匪夷所思的问题直接看代码吧! // 首先来看下css代码 <body> <style> .box { height: 300px; background-color: #ddd; } .fixed { position: fixed; top: 0; left: 0;

2021-01-25 22:55:40 130

原创 你不知道的js中的 隐式转换

今天我们来来聊一下js中的隐式转换首先我们来看一道题[ ] == 0[ ] == false这里基础稍微好点的都知道输出的是 true但是为什么呢? const arr = [] arr.valueOf = () => { console.log('invoke arr valueOf') } console.log(arr == 0) 首先我们在编辑器上写入这几行代码 试一下在控制台输出的

2021-01-20 22:26:51 99

原创 javascript indexOf你真的会用吗?

indexOf你真的会用吗?我们都知道indexOf这个库方法 既可以用在数组上也可以用在字符串上,但是还是有细微的区别例子1const arr = [1,2,3,4,5]arr.indexOf(1) // 返回的是 0那么arr.indexOf() // 返回的是 -1arr.indexOf([ ]) // 返回的是 -1arr.indexOf(’’) // 返回的是 -1例子2const str = ‘12345’str.indexOf(‘1’) // 返回的是0那么str

2021-01-09 10:05:11 77

原创 uni-app 全局变量的几种实现方式

挂载的vue的原形对象上 vue.prototype通过getApp().globalData本地存储vuex

2020-07-14 23:31:55 291

原创 为什么组件data返回的是一个函数?

为什么组件data返回的是一个函数?因为组件是可复用的,相互之间互不影响,如果不是返回一个函数的形式,当组件在页面中实例化的时候,所有的组件的data都指向同一个data的引用,所以当改变一个组件中的data中的数据时,就会改变所有组件的数据,这样显然是不被允许的;当组件中的data返回的是一个函数的时候,就会将这个data拷贝一份,这样组件之间的data就会各自指向各自的引用,组件间的数据就互不影响了;...

2020-07-14 23:26:47 507

原创 uni app sass安装慢 报错解决方案

1、npm install -g cnpm --registry=https://registry.npm.taobao.org (安装淘宝镜像)2、cnpm install node-sass --save 或者 cnpm install node-sass

2020-06-25 00:52:13 356

原创 微信小程序使用https协议发送请求报错

解决方法解决问题 获取请求成功

2020-06-20 02:00:49 184

原创 微信小程序--TabBar的原因

微信小程序–TabBar的原因之一 :学习微信小程序中,遇到底部的TabBar不出现的问题。经过多番尝试,终于解决问题。在此记录问题产生的原因和对策。导致的tabBar不能正常显示 :将pages数组中的第一行路径 写在tabBar下的list数组中 即可:总结: pages数组的第一项必须是tabBar的list数组的一员。...

2020-06-18 00:02:38 189

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除