- 博客(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
原创 微信小程序--TabBar的原因
微信小程序–TabBar的原因之一 :学习微信小程序中,遇到底部的TabBar不出现的问题。经过多番尝试,终于解决问题。在此记录问题产生的原因和对策。导致的tabBar不能正常显示 :将pages数组中的第一行路径 写在tabBar下的list数组中 即可:总结: pages数组的第一项必须是tabBar的list数组的一员。...
2020-06-18 00:02:38 189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人