前端如何防止用户修改水印?

2021-10-20
阅读 3 分钟
12.2k
这篇文章聊到的「前端水印防篡改」方法,本来是想作为一份专利提交给公司的,但我下笔之前去国内的专利检索网站上搜了下,发现一模一样的方案已经被申请了,是一位字节跳动的哥们在今年年初递交的。
封面图

Chrome 的小恐龙游戏,被我破解了...

2020-11-06
阅读 3 分钟
10.5k
一个阳光明媚的周末,透光的窗帘把我从睡梦中叫醒,大脑说今天是周六,可以慵懒个一上午,于是开心地打开我的 Mac 准备看两集 Rick and Morty 再起床洗漱。

Vue 3 到底有什么不同:v-model 升级了

2020-08-01
阅读 2 分钟
15.9k
Overview开门见山,首先从上帝视角看一下 v-model 发生了什么改变:重大变更:在自定义组件上使用 v-model 时,属性以及事件的默认名称变了:属性:value => modelValue事件:input => update:modelValue重大变更:v-bind 的 .sync 修饰符和组件的 model 选项被干掉了,取而代之的是 v-model 参数新特性: 支持同...

Vue 3 到底有什么不同:全局 API

2020-08-01
阅读 3 分钟
4.9k
比如常见的全局 API 有:Vue.component / Vue.mixin / Vue.extend / Vue.nextTick;常见的全局配置有:Vue.config.silent / Vue.config.devtools / Vue.config.productionTip

现代浏览器内部机制 Part 2 | 导航这件小事

2020-06-21
阅读 5 分钟
2.1k
本文是这个系列的第二篇文章,会深入到 Chrome 的内部工作。在上一篇文章中,我们了解了线程和进程在浏览器中的不同,而在这篇文章中,我们会更加深入的了解当浏览器为用户呈现一个页面时,这些进程和线程之间是如何通信的。

现代浏览器内部机制 Part 1 | 多进程架构

2020-06-14
阅读 5 分钟
2.8k
在这个有 4 篇文章的系列中,我们会把 Chrome 浏览器扒个精光 —— 上到浏览器的整体架构,下至页面的渲染规则。如果你对浏览器把代码变成一个具备功能的网站这件事情感到好奇,或者不确定为什么特定的技术会对页面的性能有所改进,那么强烈建议你看完这一系列。

Vue 3.0 来了!

2020-04-18
阅读 3 分钟
11.6k
早上刷微博看到 evanyou(尤雨溪) 宣布 Vue 3.0 正式进入 Beta,顺藤摸瓜找到了 Vue 团队于 4 月 16 号发布的官宣视频:Global Vue Meetup featuring Evan You & Thorsten Lünborg,感兴趣的小伙伴可以去看看。

如何发布一个自己的 node package?

2020-02-16
阅读 2 分钟
2.8k
伴随着 Node 的兴起,npm 成为了前端工程中的模块小管家。当攻城狮们要在项目中使用第三方的开源框架或工具时,一行 npm install 就能把需要的东西从 npm 的服务器下载到本地。

DOM 高级工程师不完全指南

2019-12-04
阅读 8 分钟
3.4k
虽然绝大多数前端er都有这样的困扰,但本着基础为大的原则,手撕 DOM 应当是一个前端攻城狮的必备技能,这正是本文诞生的初衷 —— DOM 并没有那么难搞,如果能去充分利用它,那么你离爱上它就不远了。

Event Loop 其实也就这点事

2018-09-02
阅读 2 分钟
1.8k
前段时间在网上陆续看了很多关于 Event loop 的文章,看完也就混个眼熟,可能内心深处对这种偏原理的知识有一些抵触心情,看完后也都没有去深入理解。最近在看 Vue 的源码,在读到关于 nextTick 的实现时,总有一种似曾相识的感觉,于是去网上查了下资料,原来 nextTick 的实现正是基于 Event loop 机制(引起重视了)。...

自动登录插件:一只前端弱鸡的自我救赎

2017-10-04
阅读 3 分钟
3.9k
对于一个开发人员来说,切环境是一件比较日常的事情,但是伴随着环境的切换,页面的登录态也会失效,所以就导致要再次输入登录帐号。当然,这件事情还满足以下的逻辑:

一个新手司机眼里的 Vue

2017-04-02
阅读 5 分钟
4.7k
先说一句题外话,对于 Vue 的探索和应用我只服 ElemeFE 基础 软件工程学 代码风格 基本功 Vue.js 官方文档 ES6 Vue 三大特性 数据的双向绑定 通过数据绑定连接 View 和 Model, 让数据的变化自动映射为视图的更新。 数据驱动的组件系统 用嵌套的组件树来描述用户界面,每一个组件对应MVVM中的ViewModel。 基于构建工具的...

浅谈git协作开发工作流

2017-03-11
阅读 3 分钟
4.7k
在我第一次接触编程的时候,学的是Pascal,在那个叫做Turbo的蓝屏编辑器里写下一些简单的流程控制去解一些简单的算法题。那时候,天还很蓝,我的代码还保存在自己电脑的文件夹里。 上了大学以后知道了github这个东西(aka: gayhub),而后又去了解了git的概念,也从字面上明白了对于一个项目的开发人员而言,版本控制是...

浏览器你为什么要干掉我的请求?

2017-02-26
阅读 2 分钟
9.6k
前两天发现了一个对于我而言比较猎奇的事情:在点击跳转连接之后,新打开的页面出现异常(本来是要直接跳转到网页版qq的,结果白屏),顺手F12了一下,看到一个红色的请求,哦原来是有请求失败了呀,再仔细一看...这个请求返回的status是canceled,奇怪哦,被cancel掉了。

加载和执行JS的正确姿势

2017-02-25
阅读 4 分钟
8.1k
script标签是一个很“霸道”的狠角色,它的每次出现都让页面等待脚本的解析和执行。也就是说,不管当前的javascript代码是内嵌还是包含在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成。 其实,script标签的“霸道”是必须的,因为页面的生存周期中,脚本的执行可能会修改页面的内容。 总之,在解析和执行js的...

天生就慢的DOM如何优化?

2017-02-06
阅读 8 分钟
9.6k
用脚本进行DOM操作的代价是很昂贵的,它是富web应用中最常见的性能瓶颈。主要有以下三种问题: 访问和修改DOM元素 修改DOM元素的样式导致repaint和reflow 通过DOM事件处理与用户进行交互

除夕小谈浏览器缓存

2017-01-27
阅读 2 分钟
2.9k
什么是浏览器缓存? Browser Caching 是浏览器将网络资源存储在本地的一种行为。 优点有: 减少冗余数据的传输 减轻服务器的压力 缩短网页的加载速度 可以看出,浏览器缓存与性能优化有着千丝万缕的联系。 浏览器缓存的分类 协商缓存 强缓存 听名字可以看出来,这两类缓存,一个属于细心的暖男,另一个则是强硬的霸道总...

Redux学习笔记-Vol.2-基础

2016-12-30
阅读 7 分钟
2.4k
Action是把数据从应用传到store的有效载荷。它是store数据的唯一来源,一般通过store.dispatch()将action传到store。 举个栗子:

Redux学习笔记-Vol.1-介绍

2016-12-30
阅读 2 分钟
1.9k
背景: 单页应用,js需要管理很多state。 两个概念: 变化和异步 和React相结合: React在视图层禁止异步并直接操作DOM,Redux处理state中的数据。 目的: Redux试图让state变化的可预测。

Gulp纵享丝滑 | Writing React with Gulp

2016-12-07
阅读 3 分钟
1.9k
首先是肯定要有node滴(这不是废话吗Orz...),如果还没有安装的话请自行询问你最喜欢的搜索引擎,相信她一定会很优雅的告诉你如何在或Windows或Mac或Linux上安装Node哒。

手把手教你撸一个网页聊天室

2016-11-27
阅读 7 分钟
29.8k
最近在学校比较闲,终于有这么一块时间可以自由支配了,所以内心还是十分的酸爽舒畅的。当然了,罪恶的事情也是有的,比如已经连续一周没有吃早饭了,其实现在回头想想,真的不能怪我啊,因为最近的天气实在是太!冷!了!好吧为了减少赖床的罪恶感,还是学(gǎo)点(diǎn)东(shì)西(qing)好了。不说废话了,还是进入正题。