首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
全沾开发(huā)
Jiasm
创建于2021-05-11
订阅专栏
前端、Node.js相关,也会涉及到一些 GOLANG 及运维
等 17 人订阅
共46篇文章
创建于2021-05-11
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
TypeScript在react项目中的实践
前段时间有写过一个TypeScript在node项目中的实践。 在里边有解释了为什么要使用TS,以及在Node中的一个项目结构是怎样的。 但是那仅仅是一个纯接口项目,碰巧赶上近期的另一个项目重构也由我来主持,经过上次的实践以后,尝到了TS所带来的甜头,毫不犹豫的选择用TS+Re…
koa源码阅读[3]-koa-send与它的衍生(static)
koa源码阅读的第四篇,涉及到向接口请求方提供文件数据。 处理静态文件是一个繁琐的事情,因为静态文件都是来自于服务器上,肯定不能放开所有权限让接口来读取。 各种路径的校验,权限的匹配,都是需要考虑到的地方。 而koa-send和koa-static就是帮助我们处理这些繁琐事情的…
微任务、宏任务与Event-Loop
首先,JavaScript是一个单线程的脚本语言。 所以就是说在一行代码执行的过程中,必然不会存在同时执行的另一行代码,就像使用alert()以后进行疯狂console.log,如果没有关闭弹框,控制台是不会显示出一条log信息的。 亦或者有些代码执行了大量计算,比方说在前端暴…
koa源码阅读[2]-koa-router
首先,因为koa是一个管理中间件的平台,而注册一个中间件使用use来执行。 诚然,这样是一个简单的方法,但是必然不适用于大型项目,数十个接口通过一个switch来控制未免太繁琐了。 更何况请求可能只支持get或者post,以及这种方式并不能很好的支持URL中包含参数的请求/in…
koa源码阅读[1]-koa与koa-compose
接上次挖的坑,对koa2.x相关的源码进行分析 第一篇。 不得不说,koa是一个很轻量、很优雅的http框架,尤其是在2.x以后移除了co的引入,使其代码变得更为清晰。 express和koa同为一批人进行开发,与express相比,koa显得非常的迷你。 因为express是…
koa源码阅读[0]
Node.js也是写了两三年的时间了,刚开始学习Node的时候,hello world就是创建一个HttpServer,后来在工作中也是经历过Express、Koa1.x、Koa2.x以及最近还在研究的结合着TypeScript的routing-controllers(驱动依然…
TypeScript在node项目中的实践
TypeScript可以理解为是JavaScript的一个超集,也就是说涵盖了所有JavaScript的功能,并在之上有着自己独特的语法。 最近的一个新项目开始了TS的踩坑之旅,现分享一些可以借鉴的套路给大家。 作为巨硬公司出品的一个静态强类型编译型语言,该语言已经出现了几年的…
Javascript装饰器的妙用
最近新开了一个Node项目,采用TypeScript来开发,在数据库及路由管理方面用了不少的装饰器,发觉这的确是一个好东西。 装饰器是一个还处于草案中的特性,目前木有直接支持该语法的环境,但是可以通过 babel 之类的进行转换为旧语法来实现效果,所以在TypeScript中,…
纯原生组件化-模块化的探索
想象有这样的一个场景,类似资料卡的东东,需要在页面中展示头像和用户的名称。 姓名在右,字号16px,垂直居中。 此时,我们完成了需求,一切都没有什么不对的,但是一个很现实的问题。 不会有这么简单的页面存在的,就算简洁如 Google 首页,也用到了400左右的DOM元素。 很难…
Web开发生存工具使用指南
这里安利两款我认为开发中能够极大的提高生产力的工具,Charles 和 Postman。 P.S. Charles(查尔斯)。。不要再读查理斯了,金刚狼中被老铁扎心的博士就叫 Charles P.P.S. 图多慎点 首先,这两个工具重叠的功能并不多,两者一起使用效果绝对是1 +…
原生ES-Module在浏览器中的尝试
首先在使用上,唯一的区别就是需要在script标签上添加一个type="module"的属性来表示这个文件是作为module的方式来运行的。 然后在对应的module文件中就是经常会在webpack中用到的那样。 这里有一个类似于noscript标签的存在。 可以在script…
记一次Node项目的优化
首先这个项目是一个几年前的项目了,期间一直在新增需求,导致代码逻辑变得也比较复杂,接口响应时长也在跟着上涨。 之前有过一次针对服务器环境方面的优化(node版本升级),确实性能提升不少,但是本着“青春在于作死”的理念,这次就从代码层面再进行一次优化。 由于是一个几年前的项目,所…
Flex入坑指南
弹性布局flex是一个几年前的CSS属性了,说它解放了一部分生产力不为过。至少解放了不少CSS布局相关的面试题 :) 之前网上流行的各种XX布局,什么postion: absolute+margin,float+padding,各种都可以使用flex来取代之。 早两年在使用的时…
拿Proxy可以做哪些有意思的事儿
首先,我们要清楚,Proxy是什么意思,这个单词翻译过来,就是 代理。 可以理解为,有一个很火的明星,开通了一个微博账号,这个账号非常活跃,回复粉丝、到处点赞之类的,但可能并不是真的由本人在维护的。 而是在背后有一个其他人 or 团队来运营,我们就可以称他们为代理人,因为他们发…
使用box-shadow进行画图(性能优化终结者)
不建议上传大图片。。喜欢听电脑引擎声的除外 首先,并不打算单纯的实现某一张图片(这样太没意思了),而是通过上传图片,来动态生成box-shadow的数据。 box-shadow可以让我们针对任意一个html标签生成阴影,我们可以控制阴影的偏移量、模糊半径、实际半径、颜色等一系列…
Generator的正确打开方式
然后在3s后会再次得到一条log。 最常用的next()方法,无论何时调用它,都会得到下一次输出的返回对象(在代码执行完后的调用将会始终返回{value: undefined, done: true})。 done :如果已经没有yield关键字了,则会返回true . Gen…
如何更好的编写async函数
Promise是帮助解决回调地狱的一个好东西,能够让异步流程变得更清晰。 状态的变更我们使用then来监听,第一个回调为resolve的处理,第二个回调为reject的处理。 两者在使用上方式上完全一样,都可以在调用getNumber函数后使用then进行监听返回值。 awai…
如何在ES5与ES6环境下处理函数默认参数
我们将函数的两个参数name与age进行默认值的处理,如果没有则使用默认值。 在外层将表达式的结果转换为Number,然后将这个值作为下标获取arguments中对应的参数。 因为是由Boolean值转变而来,所以只会存在0、1两种选项。 也就实现了上边三元运算符的功能。 ES…
JavaScript异步编程:Generator与Async
从Promise开始,JavaScript就在引入新功能,来帮助更简单的方法来处理异步编程,帮助我们远离回调地狱。 Promise是下边要讲的Generator/yield与async/await的基础,希望你已经提前了解了它。 在大概ES6的时代,推出了Generator/y…
数组的遍历你都会用了,那Promise版本的呢
当然,有些严格来讲并不能算是遍历,比如说some,every这些的。 但确实,这些都会根据我们数组的元素来进行多次的调用传入的回调。 这些方法都是比较常见的,但是当你的回调函数是一个Promise时,一切都变了。 map可以说是对Promise最友好的一个函数了。 这时候,我们…
下一页