自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 一份工作4年前端的Git备忘指南

刚毕业的时候用过极短时间的SVN,后面就一直在用Git来做代码的版本控制了,前前后后差不多4年的时间,期间做了一些在使用Git过程中的记录和心得,在这里分享给大家,大家或许可以从中吸收到一些有用的东西。无论是github,还是gitlab,还是其他的代码托管平台,代码管理都是用git去做的,git可以说是一名程序员的必备技能,对于工作和面试都是非常有帮助的。Git常用命令优雅使用Git的一些实践oh-my-zsh 常用命令Git常用命令git克隆远程分支仓库:git clone -b.

2021-05-29 17:35:57 232

原创 如何理解mqtt用到的101交换协议?

使用过mqtt的同学都知道,mqtt连接时,在Network面板中的status是101。NameStatusTimemqtt101(Switching Protocols)Pending那么101(Switching Protocols)到底是什么意思呢?这篇文章将带你理解101交换协议是什么,以及101交换协议运用的协议升级机制。101交换协议协议升级机制101交换协议HTTP的101交换协议意味着client向server发送的消息中包含了Upgrad.

2021-05-26 00:17:36 3240

原创 如何理解vue中的key?

就目前所了解的情况,key的作用有以下这些。v-for遍历时,用id,uuid之类作为key,唯一标识节点加速虚拟DOM渲染响应式系统没有监听到的数据,用+new Date()生成的时间戳作为key,手动强制触发重新渲染场景一大同小异司空见惯,场景二是下面这样的:<div :key="rerender"> <span>Hello Vue.js !</span> <complexComponent :propObj="propObj" :.

2021-05-24 11:05:05 568

原创 PostCSS真的太好用了!

在PostCSS官网有着这样的对PostCSS特性介绍,箭头后面是对应功能的插件及其github地址。increase code readability → AutoprefixerUse tomorrow’s CSS ,today! → postcss-cssnextThe end of global CSS → postcss-modulesAvoid errors in your CSS → stylelintPowerful grid CSS → lost →lostPostCSS.

2021-05-24 11:03:28 329

原创 如何解决0.1 +0.2===0.30000000000000004类问题

上篇博客深度剖析了0.1+0.2 === 0.30000000000000004的原因。这篇博客将主要提供几种解决小数精度丢失问题的Javascript类库的代码示例,以及简单的原生EcmaScript方法的代码示例。一.类库部分math.jsmath.js是JavaScript和Node.js的一个广泛的数学库。支持数字,大数,复数,分数,单位和矩阵等数据类型的运算。官网:http://mathjs.org/GitHub:https://github.com/josdejong/math..

2021-05-24 11:01:50 491

原创 实用webpack插件之DefinePlugin

通过阅读这篇文章,可以学习到如何使用DefinePlugin插件使得前端项目更加工程化,说清晰点就是如何使用这个插件,在编译阶段根据NODE_ENV自动切换配置文件,提升前端开发效率。DefinePlugin的正确用法如何使用DefinePlugin添加配置文件,构建期间自动检测环境变化,也就是如何根据NODE_ENV引入配置文件?DefinePlugin的正确用法DefinePlugin中的每个键,是一个标识符或者通过.作为多个标识符。如果value是一个字符串,它将会被当做code片段.

2021-05-24 10:59:05 7031

原创 如何理解vue中的v-model?

说到v-model,就想到了双向数据绑定,而且往往最常见的是在表单元素<input>,<textarea>,<select>中的使用,在一些自定义组件中也使用到了v-model。那么为什么v-model双向数据绑定,自动更新元素呢?v-model 在内部为不同的输入元素使用不同的属性并抛出不同的事件:text 和 textarea 元素使用 value 属性和 input 事件;checkbox 和 radio 使用 checked 属性和 change 事件.

2021-05-23 11:35:34 522

原创 如何理解vue中的v-bind?

如果你写过vue,对v-bind这个指令一定不陌生。下面我将从源码层面去带大家剖析一下v-bind背后的原理。会从以下几个方面去探索:v-bind关键源码分析v-bind化的属性统一存储在哪里:attrsMap与attrsList绑定属性获取函数 getBindingAttr 和 属性操作函数 getAndRemoveAttrv-bind如何处理不同的绑定属性v-bind:key源码分析v-bind:title源码分析v-bind:class源码分析v-bind:style源.

2021-05-23 11:33:44 462

原创 如何理解vue的computed?

这道考察computed属性的题蛮有意思的。不仅仅考察了computed,而且还考察了vue的依赖收集以及脏检查。computed : { foo() { if(this.a>0){ return this.a} else { return this.b + this.c } }}data() { a: 1, b: 1, c: 1,}众所周知,首次a,b,c均为1时,foo()返回值为1。以foo()返回值为1作.

2021-05-23 11:32:33 140

原创 HTTP之强缓存和协商缓存

关于强缓存和协商缓存的理论知识和express.js下的实践,政采云前端团队的这篇文章已经非常详尽了:图解 HTTP 缓存强缓存和协商缓存流程图图来自图解 HTTP 缓存刚好我最近也在对这一块的内容做补充和总结,受到这篇优质博文的启发,于是有了这篇博文。那么在这篇博文中会看到什么呢?强缓存和协商缓存需要注意的细节HTTP 强缓存和协商缓存之 Koa 实战Expires,Cache-Control,PragmaIf-Modified-Since&&Last-Modifi.

2021-05-23 11:30:58 159

原创 webpack3如何升级为webpack4?

这次webpack升级提升了不少构建速度:生产打包提升了30%;开发构建提升40%,开发热更新提升70%之前尝试过一些在webpack3的基础上做的构建优化,例如引入HappyPack优化构建速度,开启loader缓存和优化包查找路径等等,详情可以查看前端webpack构建优化但是随着时间的推移,这种优化产生的效果越来越弱化,手上的项目体积越来越大,对本地开发热更新速度和生产打包发布速度都有了很大的影响。webpack3升级到webpack4迫在眉睫,这篇博文将记录一些我在升级过程中遇到的坑。..

2021-05-23 11:29:29 761

原创 express中间件原理connect

不知道用了express.js的你有没有这样的疑问:app.use为什么可以添加一个又一个中间件?connect是如何区分普通中间件和错误中间件的?中间件处理函数中的next指代的又是什么?我简单看了一下connect源码,弄清楚了上面的这3个问题。app.use为什么可以添加一个又一个中间件?app.use(function middleware1(req, res, next) { // middleware 1 next();});app.use(function mid.

2021-05-23 11:27:12 249

原创 2020年冬季前端笔试题总结

原文地址:一些特别棒的面试题[4]最近面试了一些公司,拿了一些offer,不记录概念题目,仅记录coding类题目。小伙伴们空闲时间可以做这些题目练练手。涂鸦智能2021年大量招人 前端,Java,安卓,iOS,Go,测试都有空缺!还有很多其他岗位,可以在这个链接挑选岗位https://job.tuya.com/#carrers备注好岗位简历发我邮箱即可:gaokai20100801@qq.com 微信了解详情:gaokai20100801只出现一次的数字汇总区间实现红绿灯效果数.

2021-05-23 11:25:36 292

原创 浅谈浏览器架构、单线程js、事件循环、消息队列、宏任务和微任务

关键词:多进程、单线程、事件循环、消息队列、宏任务、微任务看到这些词仿佛比较让人摸不着头脑,其实在我们的日常开发中,早就和他们打过交道了。我来举几个常见的例子:我执行了一段js,页面就卡了挺久才有响应我触发了一个按钮的click事件,click事件处理器做出了响应我用setTimeout(callback, 1000)给代码加了1s的延时,1秒里发生了很多事情,然后功能正常了我用setInterval(callback, 100)给代码加了100ms的时间轮训,直到期待的那个变量出现再执行后.

2021-05-23 11:23:09 263

原创 发现数据结构之美-栈

在代码的世界中,无论是什么语言,栈其实都是一种非常重要的数据结构。全球闻名的代码提问社区stack overflow就以栈(stack)溢出作为网站名的一个部分。在写代码或者是debug的过程中,相信你已经感受到了在函数调用栈的世界蹦蹦跳跳的快乐了。在学校里刷oj,刷LeetCode,进入社会参加笔试面试的过程中,相信你也感受到了栈的强大和易用。这篇博文非常适合数据结构基础非常薄弱的同学食用,也欢迎基础扎实的同学指正和交流。如果从未感受过stack的美妙和强大,这篇博文将非常适合你!什么是栈.

2021-05-23 11:18:18 146

原创 发现算法之美-双指针之对撞指针

什么是对撞指针?初识算法图对撞过程图JavaScript中的Array与对撞指针在js中,如何定义对撞指针?实现一个最简对撞指针leetcode 对撞指针 解法题目7.整数反转(easy)9.回文数(easy)27.移除元素(easy)125.验证回文串(easy)167.两数之II-输入有序数组(easy)190.颠倒二进制位(easy)344.反转字符串(easy)345.反转字符串中的元音字母(easy)11.盛水最多的容器(medium)什么..

2021-05-23 11:17:06 260

原创 写了3个月React,我学到了什么?

原文链接:React那些事儿React hooks那些事儿新环境从Vue转到了React技术栈,这个过程还是比较有趣的。在React中会看到与Vue很多相似的地方,也有一些不同的地方,学习过程中遇到一些疑惑,做了记录。useRef如何解决空指针问题?useEffect与useCallback(useMemo)的区别是什么?React除了可以通过props传递数据以外,如何通过context方式传递数据?React.createElement(Input, props)中的React.cr.

2021-05-21 17:59:06 229

原创 写了3个月TypeScript,我学到了什么?

原文链接:TypeScript入门之前阅读vue源码的时候发现有TypeScript,一脸懵逼,因此需要入个门。最近在新环境的日常工作中也需要用到TypeScript,学习过程中遇到一些疑惑,做了记录。个人觉得还是比较适合TypeScript入门的同学阅读的,因为我遇到的这些疑惑,可能你也会遇到。ts类型中的?,<>意思是什么?什么是duck typing?constructor之前的变量定义是什么?declare是什么?ts中unknown, void, null和unde.

2021-05-14 09:57:26 484

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除