浅谈组件库和 SVG 图标库的解耦维护思路

2022-07-22
阅读 4 分钟
3.5k
任何的前端组件库,无论是业界内有名的 tdesign,ant-design 还是 element-ui 也好,它们都有着自己的一系列图标。经过观察发现,这些图标都是在组件库发布的时候就已经基本稳定了,鲜有调整,所以可以一直存放于组件库的 git 仓库中。

基于 Vite 搭建开发体验超级丝滑的 Vue3 组件库开发框架

2021-12-12
阅读 14 分钟
20.1k
说到 Vue 的组件库,大家肯定早已耳熟能详,随随便便就能列举出一大堆。那为什么还需要自己去搭建呢?结合自身的经验,在业务中往往需要高度定制化的组件,无论是 UI 和交互,可能都会跟市面上现有的组件库有着较大的出入。这个时候如果是基于现有的组件库进行修改的话,其理解成本和修改成本也不小,甚至比自己搭建一套...
封面图

参考 Codepen,我做了一个基于 iframe 的代码预览系统

2021-07-20
阅读 5 分钟
11.8k
一直觉得 Codepen 的在线代码预览系统很神奇,能够所见即所得地实时展示代码的运行效果,无论是代码演示,还是测试功能,都是非常方便快捷的存在。刚好最近手头有业务需要用到类似 Codepen 的能力,经过一番调研之后开发了一个具有基本的在线运行代码能力的 demo 出来。
封面图

探索浏览器端的网络速度测试

2020-12-22
阅读 2 分钟
7.8k
在 Chrome 浏览器种,我们可以使用 window.navigator.connection API 中的 downlink 属性来获取实时网速:

Redis + NodeJS 实现一个能处理海量数据的异步任务队列系统

2020-10-22
阅读 8 分钟
6k
在最近的业务中,接到了一个需要处理约十万条数据的需求。这些数据都以字符串的形式给到,并且处理它们的步骤是异步且耗时的(平均处理一条数据需要 25s 的时间)。如果以串行的方式实现,其耗时是相当长的:

使用 babel 全家桶模块化古老的面条代码

2020-09-23
阅读 6 分钟
3.2k
想不通为啥之前维护项目的同学能够忍受这么难以维护的代码……既然现在这个锅被我拿下了,怎么着也不能容忍如此丑陋的代码继续存在着,必须把它优化一下。

【译】如何用 JavaScript 来解析 URL

2020-07-29
阅读 4 分钟
8k
统一资源定位符,缩写为URL,是对网络资源(网页、图像、文件)的引用。URL指定资源位置和检索资源的机制(http、ftp、mailto)。

探索如何使用 JSON.stringify() 去序列化一个 Error

2019-09-18
阅读 3 分钟
5.6k
最近在做 Node 服务端需求的时候,遇到了几次服务端报错的问题。打 log 发现均是一些 Error,但是它们都没法很好地透传给前端浏览器,出现问题只能查看服务端机器的日志,调试起来非常不方便。思考了一下,服务端的内容都是通过 JSON.stringify() 处理,然后设置 Content-type: text/json 的响应头以后再传给前端的,如...

项目中使用 TypeScript 的一些感悟

2019-07-07
阅读 3 分钟
9.8k
上周发布了一款名为 Smartour 的工具,是完全采用 TypeScript (以下简称 ts)来开发的。抛开以前做业务的时候的不完全使用,这次实践可以算是我第一次真正意义上的使用 ts。由于写法上的不同,以及对不熟悉事物的新鲜感,在这次项目开发的过程中着实有着许多感悟,于是打算写篇小东西好好记录下来。

Smartour——让网页导览变得更简单

2019-07-02
阅读 3 分钟
7k
在遇到网页内容有着较大调整的时候,往往需要一个导览功能去告诉用户,某某功能已经调整到另外一个位置。比较常规的办法是添加一个蒙层,高亮显示被调整的区域,然后通过文字介绍去完成引导。我们把这个功能称为“导览”,而 Smartour 则把这个导览的功能抽离出来,提供了一个开箱即用的解决方案。

详解 Github App 的玩法

2019-05-30
阅读 4 分钟
10.7k
之前在使用 Github issues 搭建博客平台的时候,研究过一番如何取得 Github 授权并调用 API 的办法。后来选择了较简单的账号密码和 Token 的方法。但是有读者反馈这样的操作依然稍显麻烦,且在第三方的页面输入账号密码总感觉不安全。后来经过研究,总算找到了 Github App 这种更为优雅的办法。

为什么我选择用 Github issues 来写博客

2019-05-22
阅读 4 分钟
6.8k
对于爱写东西的人来说,挑一个合适的博客平台是非常重要的。而作为一个 Web 开发者,我们肯定都希望能够拥有一个高度定制化的博客平台,用以展示我们独一无二的个性以及记录长久以来的学习工作等。与此同时,我们也希望这个平台可以让我们方便地发布内容,提供完整的点赞、留言等操作。在经历过 Hexo,Wordpress,自行搭...

Web聊天工具的富文本输入框

2019-03-02
阅读 8 分钟
13k
最近折腾 Websocket,打算开发一个聊天室应用练练手。在应用开发的过程中发现可以插入 emoji ,粘贴图片的富文本输入框其实蕴含着许多有趣的知识,于是便打算记录下来和大家分享。

前端与编译原理——用JS写一个JS解释器

2018-12-03
阅读 14 分钟
32.4k
说起编译原理,印象往往只停留在本科时那些枯燥的课程和晦涩的概念。作为前端开发者,编译原理似乎离我们很远,对它的理解很可能仅仅局限于“抽象语法树(AST)”。但这仅仅是个开头而已。编译原理的使用,甚至能让我们利用JS直接写一个能运行JS代码的解释器。

打包工具的配置教程见的多了,但它们的运行原理你知道吗?

2018-06-14
阅读 6 分钟
10.7k
前端模块化成为了主流的今天,离不开各种打包工具的贡献。社区里面对于webpack,rollup以及后起之秀parcel的介绍层出不穷,对于它们各自的使用配置分析也是汗牛充栋。为了避免成为一位“配置工程师”,我们需要来了解一下打包工具的运行原理,只有把核心原理搞明白了,在工具的使用上才能更加得心应手。

Vue页面骨架屏注入实践

2018-05-12
阅读 7 分钟
62.2k
作为与用户联系最为密切的前端开发者,用户体验是最值得关注的问题。关于页面loading状态的展示,主流的主要有loading图和进度条两种。除此之外,越来越多的APP采用了“骨架屏”的方式去展示未加载内容,给予了用户焕然一新的体验。随着SPA在前端界的逐渐流行,首屏加载的问题也在困扰着开发者们。那么有没有一个办法,也...

从一行等式理解JS当中的call, apply和bind

2018-04-04
阅读 3 分钟
4k
关于JS当中的call,apply和bind,相信大家和我一样,已经看过了无数篇相关的文章,都有自己的理解。所以这篇文章并非什么科普类的文章,仅仅是把我自己的理解记录下来。

深入认识vue-cli:能做的不仅仅是初始化vue工程

2017-10-20
阅读 4 分钟
16k
相信对于大部分使用过VueJS的同学来说,vue-cli是他们非常熟悉的一个工具。借助vue-cli,我们通过非常简单的问答形式,方便地初始化一个vue工程,完全不需要担心繁复的webpack、eslint配置等等。

深入浅出基于“依赖收集”的响应式原理

2017-09-13
阅读 8 分钟
13.2k
每当问到VueJS响应式原理,大家可能都会脱口而出“Vue通过Object.defineProperty方法把data对象的全部属性转化成getter/setter,当属性被访问或修改时通知变化”。然而,其内部深层的响应式原理可能很多人都没有完全理解,网络上关于其响应式原理的文章质量也是参差不齐,大多是贴个代码加段注释了事。本文将会从一个非常...

使用offline-plugin搭配webpack轻松实现PWA

2017-08-15
阅读 6 分钟
21.9k
谈起PWA,许多人可能还只停留在“了解”的层面,比较少在实践中真正地尝试过,更多的仅仅是对着网上的教程和例子大概玩过。然而,网络上的例子多是简单的demo,鲜有与真正的开发相结合,例如和webpack的工程化结合。这篇文章将会从一个webpack plugin出发,谈一谈如何使用这个名为offline-plugin的webpack插件轻松实现PWA。

组件化开发与黑箱

2017-07-28
阅读 3 分钟
7.1k
在如今的前端开发中,“组件化”已经成为了一种流行,随之而来的各种开发框架更是把这一概念发扬光大。但是概念归概念,真正的“组件化”实践还是有许多值得探讨的地方,其中“黑箱”是我认为最具有代表性的实践方式。今天就让我们抛开具体的框架,直接来谈一谈“组件化开发”与“黑箱”。

在项目实践中用更优雅的方式处理数组问题

2017-06-27
阅读 3 分钟
4.2k
在最近的项目中,遇到了比较多处理数组的场景,比如要对数组里面某个元素的某一个字段进行抽取归类,或者判断数组当中的某个元素是否符满足判断条件等。

用现代化的方式开发一个图片上传工具

2017-04-18
阅读 10 分钟
6.2k
对于图片上传,大家一定不陌生。最近工作中遇到了关于图片上传的内容,借此机会认真研究了一番,遂一发不可收拾,最后琢磨了一个东西出来。在开发的过程中有不少的体会,于是打算写一篇文章分享一下心得体会。本文将会以这个名为Dolu的项目为例子,一步步介绍我是如何进行环境搭建、代码设计以及实际开发的。内容较多,...

提升用户体验的利器——使用Vue-Occupy实现占位效果

2017-02-28
阅读 2 分钟
9.9k
项目地址:[链接]DEMO:[链接] 介绍 Vue-Occupy是一个vue指令,能够在数据被加载之前使用一个可配置的色块进行占位,能够有效提升用户体验。 安装 使用yarn或者npm的方式进行安装: {代码...} 使用 进入项目入口文件,添加以下代码: {代码...} 这样,vue-occupy已经被注册为一个全局的指令,你可以在任意.vue文件里面通...

谈一谈几种处理JavaScript异步操作的办法

2017-02-26
阅读 4 分钟
12.1k
js的异步操作,已经是一个老生常谈的话题,关于这个话题的文章随便google一下都可以看到一大堆。那么为什么我还要写这篇东西呢?在最近的工作中,为了编写一套相对比较复杂的插件,需要处理各种各样的异步操作。但是为了体积和兼容性,不打算引入任何的pollyfill,甚至连babel也不允许使用,这也意味着只能以es5的方式去...

深入NUXT,看看一条命令行的背后到底发生了什么

2017-01-13
阅读 3 分钟
33.6k
随着react社区的next.js框架的发布,vue社区也终于诞生了属于自己的前后端同构框架nuxt.js。在进一步的接触与使用中,发现nuxt.js确实极大地方便了vue项目的开发,其背后的逻辑也值得我们玩味。关于nuxt的具体的用法请查阅官方文档,本文就不一一赘述了。

VUWE——又一个移动端Vue2组件库

2016-12-27
阅读 1 分钟
14.9k
VUWE 在线预览 介绍 VUWE是一款基于微信WeUI所开发的,专用于Vue2的组件库。 它与WeUI完全解耦。用户通过自定义WeUI的样式文件,可以方便地对VUWE实现定制化。 中文文档 使用 进入一个Vue工程项目,然后执行以下命令: {代码...} 加载WeUI 在开始之前,需要在index.html内加载WeUI样式库: {代码...} 全局引入 进入工程...

谈谈JS中的函数劫持

2016-09-21
阅读 2 分钟
19.6k
说到劫持,第一反应可能是什么不好的东西。函数劫持并不邪恶,关键是看使用的人。虽然这个概念在前端领域使用较少,但是在安全领域、自定义业务等场景下还是有一定的使用价值的。所以,这一篇文章将会和大家一起去了解一下JS中的函数劫持是什么,有什么用。

教你从零开始搭建一款前端脚手架工具

2016-08-06
阅读 7 分钟
62.9k
在实际的开发过程中,从零开始建立项目的结构是一件让人头疼的事情,所以各种各样的脚手架工具应运而生。笔者使用较多的yoeman,express-generator和vue-cli便是当中之一。它们功能丰富,但最核心的功能都是能够快速搭建一个完整的项目的结构,开发者只需要在生成的项目结构的基础上进行开发即可,非常简单高效。

http协议知识点的整理(不定期更新)

2016-02-29
阅读 3 分钟
2.8k
任职前端开发工程师已经有一段时间了,对于“前端知识”,也就是所谓的“html+css+javascript”及它们的延伸都掌握得还算可以,但是在此之外的更加基础的知识,却薄弱得令人发指。感谢曾经的上司对我的评价与建议,使我认识到自己仍然有许多的知识急需补充。趁着最近回学校的好时机,专门去图书馆恶补了一下关于http协议的知...