js
文章平均质量分 77
软件开发随心记
这个作者很懒,什么都没留下…
展开
-
koa和koa-router的使用及源码实现
1. 前言鉴于之前使用express和koa的经验,最近想尝试构建出一个koa精简版,利用最少的代码实现koa和koa-router,同时也梳理一下Node.js网络框架开发的核心内容。实现后的核心代码不超过300行,源代码将会放在文末,配有详细的注释。2. 核心设计2.1 API调用在mini-koa的API设计中,参考koa和koa-router的API调用方式。Node.js的网络框架封装其实并不复杂,其核心点在于http/https的createServer方法上,这个方法是http请求原创 2021-08-16 20:39:20 · 686 阅读 · 0 评论 -
剖析javascript闭包原理--结合java版js引擎讲解
前言javascript的闭包是部分程序员比较头痛不好理解的概念,所以本文结合js引擎从原理上剖析闭包的运行原理,让大家能对闭包有一个深入的理解.为什么基于java版Rhino引擎剖析作者最熟悉的语言是java,且本文是面向java程序员Rhino引擎是著名的javascript引擎 spiderMonkey 的java版Rhino是jdk 1.6自带的js引擎,出自mozilla,其实现原理与firefox的js引擎高度相似 项目介绍: https://developer.mozil原创 2020-10-25 19:36:33 · 292 阅读 · 0 评论 -
使用pegjs解析java代码
使用pegjs解析java代码pegjs是什么pegjs是peg文法的一种实现,peg文法是一种解析表达式文法,其具体的解析公式和常用的正则表达式很像,需要注意的是peg不允许解析存在二义性。pegjs官网 https://pegjs.org/pegjs的作用在正则匹配不能实现或困难时可以选择pegjs来处理解析,如sql语句的解析,在构造dsl时编写自定义规则也非常方便。pegjs的简单应用1.这里以一段java代码的解析为例,准备一段需要解析的java代码class Test { @原创 2020-10-20 00:36:36 · 922 阅读 · 1 评论 -
学习如何写一个npm包
之前很好奇怎么上传一个包到npm,需要怎么样的项目结构,而最近做项目时,有考虑过用npm包的形式去开发,但发现只是自己的盲区,此文用于记录一下写npm包的过程。这个包是用一个示例,主要判断用户登录状态,暂且命名为:login-test下面开始我们的npm包的制作过程初始化一个项目mkdir login-testcd login-testnpm init添加我们的代码新建index.js文件。判断用户是否登录了module.exports = function(options).原创 2020-10-09 19:02:54 · 844 阅读 · 1 评论 -
babel插件开发
文章目录babel插件开发简介babel是如何工作的编写简单的babel插件示例:分析代码给出提示示例:处理成员方法绑定babel插件开发简介babel本身是一个将JavaScriptg高版本的新语法编译成低版本语法以提升兼容性的编译器,babel除了自身的兼容编译以外也提供了接口允许用户编写插件扩展功能,在这个基础我们可以利用babel提供的api实现代码检查、代码生成、自定义语法等。babel是如何工作的babel对源代码的处理主要有解析、转换、生成 三个阶段,这里简单聊一下转换功能的使用原创 2020-10-08 00:44:49 · 809 阅读 · 0 评论 -
浅析VUE的变化侦测原理
背景介绍最近部门的前端框架开始从老旧的Angular JS向VUE迁移,为了工作起来能够更加顺手,特意花了些时间,学习了一番vue。本文对vue的变化侦测原理,做了一些简单的介绍。由于实践经验有限,本文若有错漏,还希望大家多多指正。MVVM模式在介绍vue之前,先简单介绍一下MVVM模式:MVVM 源自于经典的 Model–View–Controller(MVC)模式。MVVM 的出现促进了 GUI 前端开发与后端业务逻辑的分离,极大地提高了前端开发效率。MVVM 的核心是 ViewModel 层,原创 2020-05-31 18:55:06 · 550 阅读 · 0 评论 -
记一次使用微软大佬出品的《typescript》
TypeScript是什么?官网上说TypeScript是JavaScript类型的超集,并且可以编译为纯JavaScript。在任何浏览器,集群(服务器),操作系统上面都可以运行,而且还开源。我的认知TypeScript 是 JavaScript 的强类型版本。应用于前段时间通过babel等语言转换脚手架转换为适应任何浏览器的JavaScript语言。而且他是 JavaSc...原创 2020-04-26 19:14:40 · 280 阅读 · 0 评论 -
基于Vue实现微前端
前端微服务化一直是前端社区的一个热门话题,早在2018年就有不少开发者提出过各种解决方案。或许是未得精髓,个人认为基于Web Components的实现脱离整体打包逻辑的,难以工程化。直到遇到了vue-cli 3,子模块打包的问题得以迎刃而解。2019年秋,团队内部初步实现前端分布式开发,解决了集中式开发部署的“老大难”问题。个人认为,随着WebAssembly等技术的兴起,“前端后移”越来越明显,前端微服务会成为大前端的一个趋势。原创 2020-04-19 20:52:53 · 7094 阅读 · 1 评论 -
聊一聊在移动互联网时代做一个桌面应用
掐指一算上一次开发桌面应用已经过去十几年,在某国际领先的货柜集装箱运输公司开发设计的人力资源管理系统,供全球200多个办公室和上万名员工使用,据说至今仍在使用,生命力之旺盛让我倍感骄傲。原创 2019-11-25 01:03:24 · 441 阅读 · 0 评论 -
使用Github Pages管理团队博客
技术团队乐于技术分享,鼓励内部成员通过博客文章分享技术心得。无奈近来博客平台广告云起,各类广告商竭尽所能吸引眼球,大有喧宾夺主之势。衡量再三,F团队决定另觅净土。GitHub Pages能否成为最后净土,且听下文分解。本文在GitHub上同步更新《使用Github Pages管理团队博客》GitHub Pages简介首先得了解一下什么是github,GitHub是一个共享虚拟主机服...原创 2019-04-22 02:38:51 · 431 阅读 · 0 评论 -
js-xlsx 生成 Excel 文件与 Java POI 库生成 Excel 文件的对比
前言最近发现有一个很厉害的前端框架 js-xlsx ( npm install xlsx ),可以在浏览器端用纯前端的方式生成 Office 的 Excel 格式文件,无需再依赖后端 POI 等库。特此研究对比一下 js-xlsx 与 Java POI 方式生成 Excel 文件的效率。创建对比工程咱就熟悉 Java 那一套,所以用 Spring-boot 创建一个工程是最合适的。...原创 2019-01-06 21:59:23 · 863 阅读 · 1 评论 -
Vue前端测试实践
漫谈前端自动化测试前端自动化测试,也就近几年发展出来的概念。相对于后端测试关注的更多是界面交互的场景。对于一些需求快速迭代的也前端自动化测试有时是负收益的,因为测试场景根本跟不上业务的变更。而对于一些业务相对稳定的项目和产品,如内部系统,前端自动化测试显得更有价值。前端自动化框架不得不说开源社区涌现的开源前端自动化测试框架实在太多了。逐个测试的话,可能项目都要延期了。鉴于Vue技术栈的选择,...原创 2018-11-26 00:10:40 · 1315 阅读 · 0 评论 -
记一个逗号引发的血案,Mark 安卓下的 Web 调试
前言近期开发一个用于手机 WebView 的页面,因为是简单页面,为了避免打包的麻烦,没有用 webpack,直接用 require.js 加载资源文件了 ,页面的具体功能没啥好描述的,毕竟也与当前的问题无关,主要是遇到一个多余的 javascript 逗号的问题让我耗费了小半天才解决完,特此记录一下,以示警惕。细节问题是这样的,页面在 PC 浏览器访问没问题,在 iPhone A...原创 2018-03-01 17:08:27 · 222 阅读 · 0 评论 -
实现一个 AngularJS 的固定表头指令
1 前言在前端业务开发中经常需要在页面上创建一个内容超级多的 Table,用户操作时如果将页面滚动到页中就会导致不知道当前列的列头名称或者无法横向滚动到想找的列。针对这种情况,我暂时想到了这几种处理方案:将 Table 框定在一个固定宽高的 DIV 中,这个 DIV 会出现纵向或横向滚动条;让 Table 有多宽就显示多宽,这样子页面可能会出现横向滚动条和纵向滚动条,在纵向滚动条滚...原创 2018-02-16 14:59:46 · 2957 阅读 · 0 评论