SF
前端进阶!
前端进阶!
注册登录
关注博客
注册登录
主页
关于
RSS
Ajax 怎么取消?要不要取消?
ssshooter
2022-06-30
阅读 4 分钟
2.9k
假如你熟悉 xhr,会知道 Ajax 其实可以前端主动取消,使用的是 XMLHttpRequest.abort()。当然现在也不是刀耕火种的时代,除了面试,可能基本不会手写 xhr,在无人不知的 axios 中有两种取消方法:
Vue 优化速查
ssshooter
2022-02-24
阅读 6 分钟
4.5k
首发传送门:[链接]拆分组件我也曾以为,拆分子组件是用于抽象,但实践告诉我,拆分子组件是提升性能的一种方式(特定情况)。在我的实际工作中遇到这么个问题,有一个很大的表格,里面有多个新增条目的对话框,当数据很多的时候,填写新增数据都会变卡。原因就是,在一个组件里,修改值会造成整个组件的数据检查和 diff...
用 eslint 和 prettier 让跨 IDE 协作更舒服
ssshooter
2021-11-08
阅读 4 分钟
6.6k
TL; DR搭配 eslint 和 prettier 可以进行代码质量优化和跨 IDE 协作安装插件和 npm 包以顺利使用 eslint 和 prettier准备配置文件 .eslintrc.js 和 .prettierrc.js(可以借助工具生成也可手写)提高效率,开启 IDE 的保存自动格式化功能用 npm 可以更方便地管理 eslint 和 prettier 配置场景之前说明了一下 eslint 和 pr...
Vue 响应式原理解析
ssshooter
2021-07-27
阅读 6 分钟
3.3k
几年来看了不少 Vue 原理的文章,在这些文章的帮助下,我也多次尝试自己理解 Vue 的源码,终于,我觉得是时候自己输出一下内容了,希望可以从不同于其他文章的角度带大家熟悉 Vue。
长话短说,CSS 一个坑,一个 hack
ssshooter
2021-06-06
阅读 1 分钟
2.7k
ts;dr虽然很短但是还是不读的话可以归结为两句话CSS 的 overflow-x,overflow-y 的表现不一定如你所想你可以使用伪元素较为方便地扩大元素 hover 的范围overflow x&y根据 W3 标准as specified, except with visible/clip computing to auto/hidden (respectively) if one of overflow-x or overflow-y is neither vi...
前后端接口鉴权全解 Cookie/Session/Token 的区别
ssshooter
2021-03-01
阅读 13 分钟
18.3k
不知不觉也写得比较长了,一次看不完建议收藏夹!本文主要解释与请求状态相关的术语(cookie、session、token)和几种常见登录的实现方式,希望大家看完本文后可以有比较清晰的理解,有感到迷惑的地方请在评论区提出。
老生常谈的 JavaScript 原型链
ssshooter
2021-01-29
阅读 3 分钟
1.8k
用了这么多年的 JavaScript,对于原型链这东西自觉是理解了,但是日常工作中很少使用的“继承”部分最近突然想起来竟觉得有点陌生,所以在这里稍微理一下思路。
为什么会精度丢失?教你看懂 IEEE-754!
ssshooter
2020-09-25
阅读 5 分钟
8.9k
原文链接:[链接]上图来自维基百科。IEEE-754 标准是一个浮点数标准,存在 32、64、128 bit 三种格式(上面两幅图分别是 32 bit 和 64 bit 的情况,结构是一致的),JavaScript 使用的是 64 位,也就是常说的“双精度”,本文将以 64 位举例讲解 IEEE-754 标准。从图中可知,IEEE-754 标准将 64 位分为三部分:sign,1 bit...
认识 ESLint 和 Prettier
ssshooter
2020-06-02
阅读 3 分钟
4.7k
原文链接:[链接] ESLint 和 Prettier 分别是什么,有什么关系? 直接用脚手架生成一个带 ESLint 的项目,整天报错有没有很懵逼? 这些东西到底怎么配置? 读完就能解决这些疑问啦! ESLint 先说是什么:ESLint 是一个检查代码质量与风格的工具,配置一套规则,他就能检查出你代码中不符合规则的地方,部分问题支持自动...
vim8 及 YouCompleteMe 安装
ssshooter
2020-02-10
阅读 2 分钟
9.1k
整个过程不难,只是对 linux 系统很陌生的我,在编译安装的时候有点云里雾里。不过装完之后觉得如果不深究其中原理的话其实还是不难的,就是很普通地用编译器把配置好的源码编译好,然后运行程序而已,实际上自己也不需要做什么高难度操作。
docker 简单入门
ssshooter
2020-02-10
阅读 2 分钟
2.1k
简单来说,docker 可以给你的应用创造一个镜像,之后你带着这个镜像就可以在其他主机、甚至其他系统轻松以原来的配置运行你的应用,这样的一个应用后面成为容器。使用 docker 会比直接使用虚拟机所需的性能需求要少很多,因此你可以在主机运行多个容器并保证性能。而且因为容器的相互分离,可以减少环境间的相互影响,避...
vue 单文件 scoped 样式简析
ssshooter
2020-01-09
阅读 2 分钟
2.5k
scoped 是一个极其常用的 <style> 标签属性,使用后这一块样式能“神奇地”只应用在当前单文件组件,不会干扰到其父子组件。
前端网络安全必修 1 同源策略和CSRF
ssshooter
2019-11-11
阅读 4 分钟
5.4k
原文链接:[链接] 本文主要涉及三个关键词: 同源策略(Same-origin policy,简称 SOP) 跨站请求伪造(Cross-site request forgery,简称 CSRF) 跨域资源共享(Cross-Origin Resource Sharing,简称 CORS) 同源策略 SOP 同源 先解释何为同源:协议、域名、端口都一样,就是同源。 url 同源 [链接] 基准 [链接] o [链...
[Vue] 有时候你不需要 $emit & $on
ssshooter
2019-10-16
阅读 2 分钟
3.1k
这是一个评论组件的一部分,button-group 是回复、修改、删除 3 个按钮,点击回复的话下面的 CommentInput 组件会显示。本来想着在那里操作就在哪里取消,但是写完了,产品大人一看,表示不行,按钮不能在上面,应该统一放在评论内容和输入框的下方,不妥协。
Vue 添加响应式属性的正确姿势
ssshooter
2019-09-06
阅读 3 分钟
9.8k
原文链接:[链接] 默认此文读者明白简单的 Vue 底层原理,对此陌生的读者可以先看: 你不知道的 Vue 响应式原理 从 vue 源码看观察者模式 此文使用的 Vue 版本是 2.0+,在线例子看这里,下面顺便也把关键代码贴出来。 {代码...} 提出问题 最近的项目大量接触到动态新增的数据,觉得必须要搞清楚到底什么时候 vue 会让视...
无框架依赖的思维导图内核 Mind Elixir 开源啦
ssshooter
2019-08-01
阅读 2 分钟
6.6k
Github 地址: [链接] 试用地址: [链接] Mind elixir 是一个免费开源的思维导图内核 立即试用 [链接] 在项目中使用 安装 NPM {代码...} {代码...} script 标签引入 {代码...} HTML 结构 {代码...} 初始化 {代码...} Data Export {代码...} 使用提示 direction 选项 direction 选项可选 MindElixir.LEFT、MindElixir.RIG...
前端的一些坑,一些记录,一些冷知识 2
ssshooter
2019-07-26
阅读 5 分钟
3.7k
距离同系列上一篇已经一年了...还是要惊叹时间过得是如此之快。在对前端开发熟悉之后,对“坑”的定义也发生了变化,所以记录的反而少了,留下的都是些比较实用的方法。现在看回来,今年踏出的不寻常的一步是接触了 RN。RN 这个东西...我对他的心情还是挺复杂的。他确实给前端工程师提供了一个方便编写安卓、iOS 应用的方...
有趣的 JavaScript 格式转换
ssshooter
2019-07-24
阅读 4 分钟
4k
原文链接:[链接] 之前做文件上传和 canvas 修图时接触到几个格式,这里打算整理一下他们的关系 Blob {代码...} 使用 input 获取文件时,你拿到的就是 file 对象,而 file 继承于 blob,所以直接讲比较陌生的 blob 吧。 BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的“容器”。 Blob 有什么用 使...
nginx 反向代理处理跨域问题
ssshooter
2019-05-31
阅读 2 分钟
8.8k
原文链接:[链接] 反向代理是什么 放两个神图,图片来自这里。 这是正向代理 这是反向代理 正向代理是你发出请求的时候先经过代理服务器,所以实际上发出请求的是代理服务器。 反向代理是“代理你的目标服务器”,请求目标服务器的代理,做一些处理后再真正请求。 在这篇文章里,反向代理用于处理跨域问题。 测试环境的跨...
必须知道的程序员思维
ssshooter
2019-04-15
阅读 3 分钟
3.9k
易懂的代码首先是有规范的,从目录结构到代码风格,在项目建立初就应该确定,可以写进项目文档中,文档用于给初见项目或是接手的程序员一个概览,介绍一下整体结构,技术栈,以及一些坑。
快速理解 nodejs 模块
ssshooter
2019-03-29
阅读 2 分钟
2.3k
在博客阅读:[链接] 这个小短文用于快速理解 nodejs 模块(也就是 CommonJS 规范)。 本质 module.exports 用于暴露一个值,这个值默认是对象,也可以覆盖为原始值。 尝试在一个文件中直接 log 出 module 的值,可以得到: {代码...} 你需要通过修改 module 的 exports 属性来输出你需要输出的东西,而 require 用于导入...
React 渲染优化:diff 与 shouldComponentUpdate
ssshooter
2019-03-18
阅读 3 分钟
6.8k
我曾经对 shouldComponentUpdate 的用途不解。react 的卖点之一,是通过 diff 虚拟节点树,减少对真实节点的操作,所以我以前以为既然 diff 了,那就自然知道节点有没有更新了,diff 是根据 setState 的内容进行的,那 shouldComponentUpdate 有什么用呢?
react native 原生模块桥接的简单说明
ssshooter
2019-02-26
阅读 4 分钟
7k
原文出自:[链接]博客链接:[链接] Android 创建原生模块包 通过继承 ReactPackage 为你的原生模块包创建 Java 类,可以这么写: 覆盖 createNativeModules 和 createViewManagers 方法 {代码...} 在 createNativeModules 方法中添加原生模块 {代码...} 在 createViewManagers 方法中添加原生 UI 组件 {代码...} 创建原...
webpack 的 scope hoisting 是什么?
ssshooter
2019-02-21
阅读 2 分钟
12.8k
scope hoisting 是 webpack3 的新功能,直译过来就是「作用域提升」。熟悉 JavaScript 都应该知道「函数提升」和「变量提升」,JavaScript 会把函数和变量声明提升到当前作用域的顶部。「作用域提升」也类似于此,webpack 会把引入的 js 文件“提升到”它的引入者顶部。
创造属于自己的静态博客
ssshooter
2019-01-31
阅读 2 分钟
3.4k
本文并不是从 0 开始使用 gatsby.js 搭建博客,starter 使用的是 gatsby-starter-blog。使用 gatsby-starter-blog 可以大量节省项目搭建时间,直接得到一个最简单的博客模版,这个模板的缺点是功能少,但是反过来说优点是有较高的自由度。
使用 Gatsby.js 搭建静态博客 7 文章目录
ssshooter
2019-01-31
阅读 4 分钟
5.2k
前面说过基本功能已经添加完了,但是生成目录依然是我 TODO 的头号问题。今天终于把这个问题解决了,本来以为要自己解释 md 文件,没想到自带的插件就有这个功能我却没发现。
使用 Gatsby.js 搭建静态博客 6 评论系统
ssshooter
2019-01-18
阅读 3 分钟
4.4k
大家都知道 disqus 等第三方评论系统的存在。disqus 几年前还是挺好使的,但是现在已经是不存在的网站了。虽然国内也有类似的服务,但是免费档位有可能会有大篇幅的广告。
使用 Gatsby.js 搭建静态博客 EX 使用语雀发布到博客
ssshooter
2019-01-17
阅读 4 分钟
4.3k
偶然看到通过语雀 webhook 发布文章到 Hexo 静态博客,很方便,实现过程也很有意思。同样的原理可以运用到 Gatsby.js 博客上。
使用 Github API 更新仓库
ssshooter
2019-01-15
阅读 8 分钟
7k
本文为大家提供一种使用 GitHub API 更新 GitHub 仓库的方法。通常我们会使用 Git 客户端 Commit 然后 Push 到 GitHub,但 GitHub 为我们提供了相关 API,在某些情况下可以直接通过 API 更新仓库。
浅析 web 前端 MVVM
ssshooter
2019-01-08
阅读 3 分钟
3k
记得四个月前有一次面试,面试官问我 MVVM 是什么,MVVM 的本质是什么。我大脑一片混乱,那时我对 MVVM 的认知就只是“双向绑定“和“Vue”,以这个关键字简单回答了几句,我反问 MVVM 的本质是什么,对方就重复一次双向绑定。我怎么觉得对方也没懂就随便这么一问呢...
1
(current)
2
下一页
1
(current)
下一页