现代前端开发

如何开发一个 React 组件,以一个简单的日历组件为例子

React Hooks 出来这么久了,一直没用过,刚好有需要一个简单点的日历组件,没找到合适的,于是干脆自己动手,刚好实践一下 Hooks 。开发好的组件我上传到了 github,如果有学习需要的同学,欢迎自取: https://github.com/posebear1990/react-simple-component-calendar最终 demo 在这里可以看到,可以看到是个很简单的日历组…

节流函数和防抖函数

节流函数和防抖函数是前端在工作中经常会用到的两个函数,不过相信你和我一样,在工作里都是使用相关类库来实现,比如 lodash 就分别提供了这两个函数,很少会了解这两个函数的具体实现。但是其实了解这两个函数实现还是很有必要的,因为根据我的经验很多面试会选这两道题来考察面试者的代码功底。现在,我们分别实现一下吧,首先这两个函数的作用都是用来限制函数的执行频率,其返回值依然是个函数,所以他们其实也是一…

常见的上传文件的方法

最近做了一个简单的图片上传组件,顺路总结一下常见的上传文件的方法。首先是最原始,也最简单的实现,是直接将 input 组件放在 form 组件里,然后调用 form 组件的 submit 方法。 不过这种方法过于原始,依赖表单提交接口,因此适用范围大大受限。其次,就是是用 FormData 对象包装图片文件,然后通过 AJAX 方式来上传至服务器。 这种方法的优点是服务器可以直接拿到二进制的文件…

JavaScript 封装一个异步操作

JavaScript 作为 Web 前端技术唯一语言,从诞生之初就面临着很多异步的操作,实践演变中面临了一些问题,好在这些问题渐渐的都被解决掉了。我们以封装一个 request 方法为例一步一步还原一下异步操作的演进过程。事件绑定模式早期的网页交互少,复杂度低异步操作依赖 DOM0 的 API 对异步操作进行事件绑定就完全够用,发送一个请求的过程大概是这个样子:当 request 的到相应 on…

vue-cli 3 中 audio 元素不能播放的解决办法

注意:文章针对的内容仅针对 vue-cli 3 ,不适用更老的版本。在用 vue 做页面的时候遇到了音频不能播放的情况,总结一下是因为资源没有引用到。具体是这样的,正常情况下我们在页面上创建的一个 audio 元素:然后用 js 播放:然而打开控制台发现报错: 说明是文件错误,经过排查,发现文件没有被正确加载进来。如何正确引入呢:两种方法。1. 通过 public 目录直接引入vue-cli 项…

刚接触前端开发,如何选择编辑器以及几个Atom常用插件推荐

程序员圈子内的编辑器之争,已经是由来已久,把它作为一种文化现象来看,还蛮有意思的。程序员很多见面尬聊也很有可能会聊到彼此用什么语言,然后分别用什么编辑器。简单来说,这个话题是个打开话匣子的好工具,而且很有可能能从对方使用的编辑器上边分析出来对方的性格,阶级,思想倾向什么的…… 但是,作为一个初学编程的程序员,应该趁早远离无畏的编辑器之争。争论谁是最好的编辑器毫无意义,毕竟编辑器只是一个工具,用它…

现代前端开发——数据与视图关系的演进

之前在网上看到过一位设计师这样说:现在绝大多数的网站做的其实只是把数据库里的内容展示到网页上,除此之外并没有做其他任何事情,所有的网站都是没有温度的。他当然是在只是在批评当前网站的单一与乏味,但是我们仔细想想前半句话却觉得似乎很有道理,似乎整个web开发史就只是在反反复复的解决这一件事。如何把数据展示到页面上,如何更快的把数据展示到页面上,如何更好的把数据展示到页面上,如何方便用户和展示到页面上…

程序员应该如何自我提升——《软技能》

我在知乎上泡了四年,从刚进大学的懵懂,到初入职场。这四年里,我抛弃了微博,也没怎么上过饭否。但是很惭愧,在知乎这么久没有怎么关注专业知识。但是受知乎影响,毕业后还是直接丢掉了本专业做了程序员。知乎对我最大的帮助就是就是,前年的一篇关于跑步的文章和关于前端学习的一份书单,去年毕业时的毕业论文,毕业前的简历的设计和制作。而其余时间我从知乎得到了什么呢,我想就是这本书里的所有内容:职业规划,学习,理财…

理解闭包

理解闭包红宝书是这样定义闭包的:是指有权访问 另一个函数作用域中的变量 的 函数。 所以闭包首先是一个函数,特殊的函数。特殊在哪里呢?能访问另一个函数作用域里的变量。 我们都知道javascript没有块级作用域,所以函数可以看作一个作用域。如果两个函数相互嵌套,里层函数能访问到外层函数的变量,此时里层函数就是一个闭包。例子如下:里层函数in()可以访问到外层函数out()里的变量,因此里层函数…