摘要:
在 Vue 项目中,可以选择 hash或者 history.pushState() 实现路由跳转。如果在路由中使用history模式: 那么,当我们 npm run build 完成并部署到服务器后,刷新某个路由下的页面,会出现 404 或者 502 错误。 这是因为刷新页面时访问的资源在服务端找不 阅读全文
摘要:
从一道经典的面试题说起 “用户输入 URL 到浏览器显示页面,这个过程发生了什么?”,作为前端开发,这个题目相信大家并不陌生。楼主的答案分为两部: 一、网络通信 应用层 DNS 域名解析 客户端首先将 URL 解析出主机名,然后通过域名服务将主机名转换为 IP 地址。 建立与服务器的 TCP 连接 阅读全文
摘要:
一、减少打包的体积 通过vue cli 初始化项目后,使用 生成的JS文件往往会很大,加载时间过长导致页面长时间白屏,所以我们尽可能的使用一下方法来减少打包体积。 1.1 通过cdn 引入vue.js、vue router 对于vue.js、vue router、axios等静态文件来说,不需要我们 阅读全文
摘要:
XSS漏洞 XSS 全称 Cross Site Scripting ,跨站脚本攻击。它的形成主要原因是多数用户输入没有转义,而被直接执行。 参考下面一段脚本: 攻击者发现这里的漏洞后,构造这样的URL: 为了不让受害者发现这段URL的猫腻,他可能会压缩成一个短网址: 然后将短网址发给某个登录在线用户 阅读全文
摘要:
为什么 typeof null === 'object' 原理是这样的,不同的对象在底层都表示为二进制,在JavaScript中二进制前三位都为0的话会被判断为 object 类型, null 的二进制表示是全0,自然前三位也是0,所以执行 typeof 时会返回“ object ”。 对象属性的存 阅读全文
摘要:
函数调用位置 与词法作用域相反的是,this的指向由函数运行时决定,它是动态的,随着函数调用位置变化而变化。 要理解 this,首先要理解调用位置 :调用位置就是函数在代码中被调用的位置(而 不是声明的位置)。只有仔细分析调用位置才能回答这个问题:这个this到底引用的是什么? function b 阅读全文
摘要:
模块模式定义 模块是'javascript'的一种设计模式,它为函数定义一个包装函数,并且该包装函数的返回值与模块的API保持一致: 单例模块模式 仔细研究上面的模块,我们发现每次调用 都会生成一个实例,很浪费。于是我们简单的包装一下,就有了单例模块模式: 模块依赖管理 现代大多数模块依赖管理器本质 阅读全文
摘要:
背景描述: VUE 项目经过 npm run bulid 生成静态文件上传到服务器后,当我们切换路由并刷新页面,nginx 服务器会报 502 或者 404 错误。 原因分析: 我猜测是因为在 VUE 项目中,路由是利用H5的 history ,看起来页面 url 发生了变化,其实根本就在同一个页面 阅读全文