关于前端安全性那些事 1、XSS攻击 2、 Iframe 3、跨站请求伪造(Cross-site request forgery) 4、ClickJacking(点击劫持)5、HTTPS重定向问题 6、CDN劫持
vue test utils 使用笔记 1、任何导致操作 DOM 的改变都应该在断言之前 await nextTick 函数// 错误不会被捕获it('will time out', done => { Vue.nextTick(() => { expect(true).toBe(false) done() })})// 接下来的三项测试都会如预期工作it('will catch the error using done', done => { Vue.config.errorHandle
如何基于el-table封装一个方便好用的table组件 之前听到很多人讲在用 element-ui 的 table 组件时,还是自己循环 el-table-column 去实现的!每个页面都这么写想想就头大,另外万一产品要求你项目中所有的表格都要扩展一个功能,比如说按shift,可以实现数据行多选?那岂不是当场傻眼!我们完全可以基于el-table去封装一个组件,基于**配置**自动生成表格。
为什么v-for不推荐使用index做为key 本文续接上篇 我终于搞懂了vue的diff算法为什么v-for不推荐使用index做为key引用这篇掘金文章中所列出的两种情况,本文只对分析过程做一些图示补充1、节点reverse即数组倒置时假设如下代码,值直接以文本格式绑定在dom节点内部 <div> <span v-for="(item,index) in arr" :key="index" >{{item}}</span> </div>当使用index作为key时,我们来.
我终于理清了vue的diff算法 > 1、最近好几个月都比较忙,刚好项目接近尾声,今天终于抽出来了一点时间重新捋了一下diff算法,具体的解析后面抽时间补上,画了个大概的图,可以配合代码注释凑活着看> 2、草稿箱里也放了好多篇想写的文章,后面整理成一个系列慢慢发出来@[TOC](diff算法)### 1、怎么更好的阅读源码这个问题困扰我挺久的,在网上搜过大佬们谈怎么阅读源码的心得,总觉得拿来自己套用起来并不适用,这里分享下自己阅读源码时的思路 - 明确自己的主线任务,即自己读这个源码是想干嘛,写代码过程中遇到问题,需要解惑?还
2020年终总结——工作第三年 好吧,犹豫了那么一秒,最后还是决定用统一的标题。2020年的主色调该是#eb8534,日出日落的颜色。18年一整年是在从学生阶段过渡到成人阶段,有对新生活的无限期待。19年的整个历程,是找不到自己的定位,看不清未来,自我放弃与自我驱动的激烈冲突。20年,如果按照自己现在选择的路一直走下去,甚至一眼就能看穿自己直到30岁之前的生活轨迹。对于19年年终总结时对20年的期望,勉强完成了百分之75吧。落户武汉具体时间记不清了,大概四五月份吧。走的大学生落户,一周不到就办完了。都很顺利,没啥好说的.
Cordova App 热更新 超详细教程 目前Cordova平台我找到的热更新方案有两种 1. 使用cordova-hot-code-push插件 [GitHub仓库地址](https://github.com/nordnet/cordova-hot-code-push) 2. 使用 cordova-plugin-code-push [GitHub仓库地址](https://github.com/Microsoft/cordova-plugin-code-push) 第一个插件,已经官宣不再维护了。第二个插件是微软官方提供的。果断选择
Cordova设置iOS App启动页 前言iOS13推出后要求开发者必须在今年4月之前使用LaunchScreen.storyboard启动,不能再使用之前Image.asset中的LaunchImage方式了。对于使用原生iOS的开发者来说,操作起来就是在xcode里面点点点,控件拖一拖设置一下.但是对于我们使用cordova开发混合App的开发者来说,不熟悉xcode的话,操作起来会很懵。(我硬是在那搞了两个小时也没搞好!)看下Cordova 官方对于这两种方式的解释:There are two mechanisms for dis
webpack常用plugin和loader,以及打包优化 一、开发环境1、插件1.1、webpack dev servewebpack-dev-server实际上相当于启用了一个express的Http服务器+调用webpack-dev-middleware。它的作用主要是用来伺服资源文件。这个Http服务器和client使用了websocket通讯协议,原始文件作出改动后,webpack-dev-server会用webpack实时的编译,再用webpack-dev-middleware将webpack编译后文件会输出到内存中。适合纯前端项目,很难编写后端服
关于axios请求源码分析 Axios的特点:请求返回Promise,可以很方便的进行链式调用可以附加拦截器:请求拦截器、响应拦截器可以随时取消未完成的请求客户端支持防御 XSRF(跨站请求伪造)会帮你转换请求数据和响应数据在node.js中发送请求使用http,在浏览器使用XMLHttpRequest
使用Cordova打包H5到安卓 1、配置开发环境安卓的话,随便搜一下都有很多,这里放一个相对比较详细的 传送门安装cordova 就直接看官方文档 官网链接2、创建项目cordova create 文件名 appid app名称cordova platform add ios/androidcordova cordova plugin addcordova build...
关于Ionic3 +Cordova 开发App中遇到的问题和解决方案 ImagePicker 相关1、选择照片闪退解决方案:参考自 传送门把红框里改掉,改成v4:26.+,原来是v4:27.+猜测是与当前指定的Android版本不匹配。2、ImagePicker选择的照片质量下降当ImagePickerOptions 配置了宽高之后,哪怕配置了图片质量为100,选择的照片质量也会下降,去掉宽高就好了。我怀疑这里的宽高指的是分辨率吧? chooseFromAlbum() { const options: ImagePickerOptions
.Net Core使用 VS 附加到进程调试 前言必须要吐槽下,最近app有些新功能,需要真机调试(如何在真机调试中,查看log信息我后面会补篇博客),然后顺带着调试接口也不怎么方便,就搞一下附加进程调试,结果搞这个附加到进程调试搞了我两个小时,终于在中午吃饭的时候成功了。google了各种帖子,博客,各种解决方案,大多数都是复制粘贴来的博客,没一个好使的,还是自己整理一个靠谱点一、发布到IIS准备工作:这里要注意配置一定要选Debug。第一步发布到IIS,这个没什么好说的。xxxx填一下就好了二、设置应用程序池这里按照微软官方文
TS实现观察者模式和发布订阅模式 观察者模式的定义:观察者模式指的是一个对象(Subject)维持一系列依赖于它的对象(Observer),当有关状态发生变更时 Subject 对象则通知一系列 Observer 对象进行更新。简单来说就是 A 对 B 的某个属性敏感,当B的这个属性发生变化时,A要及时做出相应的处理。此时A就是观察者Observer,B就是被观察者Subject。通过一个热水器的例子来实现以下观察者模式: - 温度检测装置可以获取到水的实时温度,用来判断水是不是烧开了。需求:在水加热到100℃时关闭电源
关于抽象工厂模式的定义和实现 前言部分摘自:《设计模式之禅》 这本书抽象工厂模式的定义为创建一组相关或相互 依赖的对象提供一个接口,而且无须指定它们的具体类。一个好理解的例子:讲了女娲造人的故事。人是造出来了,世界也热闹了,可是低头一看,都是清一色的类型,缺少关爱、仇恨、喜怒哀乐等情绪,人类的生命太平淡了,女娲一想,猛然一拍脑袋,忘记给人类定义性别了,那怎么办?抹掉重来,于是人类经过一次大洗礼,所有的人种都消灭掉了,世界又是空无一物,寂静而又寂寞。由于女娲之前的准备工作花费了非常大的精力,比如准备黄土、八卦炉等