BaKa也能看懂的react-router和redux教程
# 序 这是一个非常基础的 redux 教程,在我学 redux 时,发现无论是官方文档还是其他的博客,均会先讲一堆 redux 的设计思想,然后抛出一堆新概念看着脑壳疼,所以我打算写一篇非常基础的教程,没有花里花哨的,只是讲讲最简单的使用,至于思想啥的,掘金一搜一大把啦。所以这篇文章只是追求用最简单的例子来介绍 API,不会讲的太深,就酱。 # redux redux 和 react 没有太大的关系,它只是一个单独的库,你可以随便在哪个地方使用它,它的主要用途我觉得有两点 便于多组件跨级间共享数据 便于提供规范统一的数据源管理 先用一张图介绍 redux...
more...Webstrom不受控制自动编译ts和vue文件的解决办法
一个悲伤的故事,前几天我下了一个 ts 执行插件,然后,我的 webstorm 就把我项目里的所有 vue 和 ts 文件全部编译了一遍,生成.js 和.map 文件 我试了重开软件重启电脑重装系统,发现均没有什么效果 最后我发现了是这个配置的问题,关掉就好了 所以为什么这东西开了会编译.vue 的的 令人迷惑
more...全面总结CORS
# 序 还记得我刚开始和后端同学合作开发时,每次解决跨域问题都是一段痛苦的经历,经常有这样的对话 我:在,CORS 开了吗 对方:没呢,这就开 ... 几个小时后 我:开了吗? 对方:开了开了 我:为什么我这里不行的? ... 几个小时后 对方:你再试试 我:还是不行?? .... 我:好了好了大佬 nb 当时的我不过后来这样的事情也渐渐莫得了,应该是后端同学终于成为了后端大佬吧 再后来,我学了 nodejs,发现这玩意还有点复杂,所以整篇博客记录一下,不然万一明年师妹来问我 CORS 我不会那多尴尬(假装有师妹) # CORS # 为什么要有 CORS 要知道为什么要有...
more...Vue移动端Rem适配方案(适配Vant UI库)
# 序 最近整了个移动端的项目,用的还是 Vue,多少在适配上也踩了点坑,所以,就分享一下适配的操作 # 使用 rem.ts 新建 rem.ts // 基准大小const baseSize = 32;const designDraft = 750;// 设置 rem 函数function setRem () { // 当前页面宽度相对于 750 宽的缩放比例,可根据自己需要修改。 const scale = document.documentElement.clientWidth / designDraft; // 设置页面根节点字体大小...
more...前端安全-XSS和CSRF
# 序 前端安全应该是老生常谈的话题了,毕竟世界上没有绝对安全的系统,我们工程师能做的只是让入侵变得更难,这篇文章会介绍前端工程师需要注意的两种攻击,XSS 和 CSRF 攻击。 # XSS XSS 是 Cross-site scripting 的缩写,即跨站脚本攻击,在 XSS 攻击中,攻击者把恶意代码注入到网站中,普通用户在打开网站时,被注入的恶意代码便会执行。需要注意的是,攻击者并不能直接攻击受害者的的电脑,而是利用受害者访问的网站上的漏洞,通过注入等方式让恶意 JS 代码在受害者的电脑上运行。 如果你的网站被 XSS 攻击成功了,那么攻击者可能会做什么事呢? 窃取用户敏感信息,如...
more...执行上下文和作用域链
# 前言 因为和我对接的后台同学的服务器不在状态,所以我突然多了一天的摸鱼时间,突然想起还有这么个知识点,于是我决定花点时间整理下,最后发现这东西的坑比我想象的大,所以就有了这篇博客 本文同步更新于我的掘金博客 # ES3 因为一些概念已经不通用,所以把文章分成几个部分,先从 ES3 时代开始说起。 中英名词对照: 执行上下文:Execution Contexts 执行栈:Execution Stack 变量对象:variable object 激活对象:Activation Object 作用域链:Scope Chain # 执行上下文和执行栈 在 JS 代码执行前,JS...
more...解除智慧树的不能复制 & 不能打开右键菜单限制
# 前言 今天做了网课的期末考试,结果提前半小时做完了,闲着无聊于是在网页上捣鼓起了怎么解除网页的不能复制 & 不能打开右键菜单的限制。捣鼓出来后,发现好久没写(氵)博客了,那就分享一下这个操作。 # 正文 # 智慧树 F12 打开控制台,切换到 element 一栏,随便点一个元素 我们可以看到下面的几个事件 然后按 remove 把这个事件移除掉就完事了。 当然你也可以复制下面的命令到控制台执行一下 document.oncopy = null;document.onselectstart = null;document.oncontextmenu =...
more...