2022年的JavaScript开发工具

2022-04-03
阅读 4 分钟
4.5k
原文:[链接]在2022年,每一位 JS / TS 开发者都应该知道的最重要的开发工具的分类,包括最相关的权衡,以及一些个人建议。在软件工程的世界中,对所使用的工具有一个明确的了解非常重要。但是 JS 工具总是在快速的变化着,2022年也不例外。因此,我想把你在2022年应该知道的最重要的工具分解开来,它们最相关的权衡是什...

Vue3源码分析——编译模块和编译器

2021-10-30
阅读 12 分钟
7.6k
Parse 阶段将模板字符串转换为语法抽象树 AST。Transform 阶段对 AST 做一些转换处理。Codegen 阶段根据 AST 生成相应的渲染函数字符串。

观察者模式和订阅发布模式是一样的吗?

2021-01-12
阅读 7 分钟
5.8k
看到一篇介绍关于观察者模式和订阅发布模式的区别的文章,看完后依然认为它们在概念和思想上是统一的,只是根据实现方式和使用场景的不同,叫法不一样,不过既然有区别,就来探究一番,加深理解。

【LeetCode】70. 爬楼梯

2020-12-22
阅读 3 分钟
2.9k
从本题中我们可以学到包含重复子问题,可以采用记忆化的方式,复用计算后的值;并用动态规划的思想,找到动态转移方程,采用循环实现。题目描述:题目:假设我们需要爬一个楼梯,这个楼梯一共有 N 阶,可以一步跨越 1 个或者 2 个台阶,那么爬完楼梯一共有多少种方式?示例:输入:2输出:2有2种方式可以爬楼梯,跳1+1阶...

2020 Javascript 模块

2020-09-03
阅读 6 分钟
2.9k
在这篇文章中,我们将介绍标准的 JavaScript 模块,目前是如何在前端应用程序中使用的,以及未来我们可能会如何使用它们。JavaScript 模块有时被称为 ESM,它代表 ECMAScript 模块。

使用Vue Composition API写出清晰、可扩展的表单

2020-06-10
阅读 8 分钟
6.9k
表单是前端开发中最棘手的部分之一,您可能会在其中发现很多混乱的代码。 基于组件的框架,如 Vue.js,在提高前端代码的可扩展性方面做了很多工作,但是表单的问题仍然存在。 在本教程中,将向您展示新的 Vue Composition API(即将加入 Vue 3 中)如何使表单代码更清晰、更具可扩展性。 为什么表单代码经常很烂 像 Vue ...

vue-router 导航守卫中 next 控制实现

2020-06-04
阅读 5 分钟
5.8k
钩子函数有不同的作用,例如 beforEach,afterEach,beforeEnter,beforeRouteEnter,beforeRouteUpdate,beforeRouteLeave,针对这些注册的钩子函数,要依次进行执行,并且在必要环节有控制权决定是否继续进入到下一个钩子函数中。

解读 vue-class-component 源码实现原理

2020-04-23
阅读 10 分钟
5.1k
使用过一段时间 class 来定义组件,要用 vue-property-decorator 提供定义好的装饰器,辅助完成所需功能,对这个过程好奇,就研究了源码。内部主要依靠 vue-class-component 实现,所以将重点放在对 vue-class-component 的解读上。

装饰者模式和TypeScript装饰器

2020-04-18
阅读 8 分钟
10.8k
导读 本文主要为三方面的内容: 装饰者模式的概念和使用 Typescript装饰器的使用、执行顺序 编译后的源码分析 学习的目的是对装饰者模式模式有进一步的理解,并运用在自己的项目中;对TypeScript装饰器的理解,更好的使用装饰器,例如在 nodejs web 框架中、 vue-property-decorator 中,或者是自定义装饰器,能熟练运用...

通过浏览器工作台启动本地项目

2019-12-12
阅读 11 分钟
4.2k
一直对通过浏览器工作台启动本地项目感兴趣,类似 vue-cli3 中提供的 vue ui,在浏览器中打开工作台,就能够创建、启动、停止、打包、部署你的项目,很好奇这一系列背后的实现原理。

30秒就能理解的 Javascript 代码片段 --- Array篇

2019-07-30
阅读 5 分钟
3.1k
仓库的名字就让我很惊讶,30秒就能理解一段代码,有点不可思议。看了每个方法实现的代码都不长,很简短,最复杂的也不过是4、5行代码,的确没有标题党的嫌疑,满满的干活。

我喜欢的5个编程技巧

2019-07-19
阅读 3 分钟
3k
我将这种模式称为“提前退出(early exits)”,但有些人也将此称为“保镖模式(the Bouncer Pattern)”或“保护条款('guard clauses)”。撇开命名不谈,该模式采用的方法是首先检查无效的情况,然后从该函数返回,否则它将继续使用该函数的预期情况并执行。

JavaScript 进阶问题列表,你掌握了多少?

2019-07-15
阅读 5 分钟
3.7k
经常写业务就容易忽视对基础知识的补充和加强,但在面试中,基础知识点是非常重要的考核部分。本文要分享的是,一位开发者每天都会发布的 JavaScript 问题。有的容易,有的会有难度,对基础知识的查缺补漏非常有帮助,也是你进阶路上必然要掌握的知识。

使用vue.js的动态组件模板

2019-07-15
阅读 3 分钟
10.7k
先来一篇翻译的文章,和我在项目中使用的动态组件思路一样,不过缺少了演化的过程,直接给出了最终的解决方案。这篇文章给的场景也很简单,但要了解这种思想是足够的。之后再详细的总结我遇到的问题和解决方案,放在更复杂的场景中。

盘点Vue源码中用到的工具函数

2019-07-05
阅读 6 分钟
4.4k
创建一个被冻结的空对象 判断是否是 undefined 或 null 判断是否不是 undefined 和 null 判断是否是原始类型 判断是否是对象类型 判断有效的数组下标 判断是否是一个 Promise 对象 删除数组中指定元素 用做缓存的高阶函数 递归判断一个对象是否和另个一个对象完全相同 函数只执行一次 自定义 bind 函数

Vue.js应用性能优化:第三部分-延迟加载Vuex模块

2019-05-19
阅读 5 分钟
8.3k
在前一部分,我们学习了足够强大的模式,可以显着提高应用程序的性能 - 按每个路由分割代码。虽然按路由分割代码非常有用,但是在用户访问我们的站点后,仍然有很多代码是不需要的。在本系列的这一部分中,我们将重点关注分离我们的状态管理(state management ) - Vuex模块。本系列文章基于对 Vue Storefront 性能优化...

Vue.js应用性能优化:第二部分---路由懒加载和 Vendor bundle 反模式

2019-05-12
阅读 3 分钟
5k
在前一篇文章中,我们学习了什么是代码分割,它是如何与 Webpack 一起工作的,以及如何在Vue应用程序中使用延迟加载。现在,我们将更深入地研究,并学习用于分割 Vue.js 应用程序最实用的模式。

Vue.js应用性能优化:第一部分---介绍性能优化和懒加载

2019-05-10
阅读 4 分钟
4.1k
当“移动优先”(mobile-first)的方式逐渐成为一种标准,而不确定的网络环境因素应该始终是我们考虑的一点,因此保持让应用程序快速加载变得越来越困难。在本系列文章中,我将深入研究Vue性能优化技术,我们在 Vue Storefront 中已经使用了这些技术,您也可以在Vue.js应用程序中使用这些技术,使它们能够立即加载并顺利运...

leetcode刷题:283.Move Zeroes(Easy)

2019-02-01
阅读 3 分钟
2.1k
这个题是很Easy的一道题,它的应用场景是在我尝试写小游戏2048时,采用了二维数组存放数字占位,当按上下左右键时,要把所有的数字靠在一边,而所有为0的靠在另一边,这时候用到这个题的解题思路很快能做出来。

Object上的静态方法

2019-01-02
阅读 4 分钟
3.7k
内置提供了一个对象为 Object ,也被称之为是构造函数,用来创建对象用的。在 javascript 函数也是对象,是一种可被执行的对象,所以称Object为对象也是可以的。挂在函数上的方法,称之为静态方法。

bind函数作用、应用场景以及模拟实现

2018-12-27
阅读 7 分钟
4.8k
bind函数 bind 函数挂在 Function 的原型上 Function.prototype.bind 创建的函数都可以直接调用 bind,使用: {代码...} bind 的作用: bind() 方法调用后会创建一个新函数。当这个新函数被调用时,bind() 的第一个参数将作为新函数运行时的 this的值,之后的序列参数将会在传递的实参前传入作为新函数的参数。<MDN&gt...

理解vue中的组件(二)

2018-09-29
阅读 11 分钟
3.8k
先来说复用,复用主要是复用 HTML 结构,外加这块结构中的交互 js,和针对这一块设置的 css。 这三者是构成一个组件最基本的要素,这三者相互隔离有相互作用,将三者聚合起来,在需要使用的地方,类似一个变量(标签对)一样,会引用这一块的所有功能,可以多次使用。

Ajax 知识点的那些事

2018-07-11
阅读 7 分钟
3.3k
AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术,包含了HTML、CSS、JavaScript、DOM、XML等技术。Aiax 只是一个哥们“发明”的缩写,这个新术语用来描述一种使用现有技术集合的一个名称。多项技术中最重要的是 XMLHttpRequest 对象,稍后会介绍...

常用ECMAScript6语法归纳

2018-03-09
阅读 5 分钟
2.8k
原文博客地址,欢迎学习交流:点击预览 声明变量 可以使用let、const关键字声明变量,而不推荐使用var声明变量 var声明变量的问题: 可以多次重复声明同一个变量名,存在覆盖的风险 在全局声明的变量会挂在全局对象上 var不能形成块级作用域,例如:if、for范围外依然可以使用var声明的变量 var声明的变量具备变量提升(h...

中间件执行模块koa-Compose源码分析

2018-02-28
阅读 6 分钟
10.7k
原文博客地址,欢迎学习交流:点击预览 读了下Koa的源码,写的相当的精简,遇到处理中间件执行的模块koa-Compose,决定学习一下这个模块的源码。 阅读本文可以学到: Koa中间件的加载 next参数的来源 中间件控制权执行顺序 先上一段使用Koa启动服务的代码:放在文件app.js中 {代码...} 以上代码,可以使用node app.js启动...

javascript错误处理类型

2017-09-25
阅读 4 分钟
7k
在写javascript的时候,调试错误必不可少,除了能够在浏览器中打印出来错误外,常常还需要知道错误的类型是什么,以便对症下药的纠错;也有时候,在自己封装的工具函数中,不传参或传入了错误类型的参数,也要适当的抛出一些错误以示警告;使用框架不正常情况下也会抛出错误,如果对错误一无所知,便无从下手调试。综合...

Linux常用命令---显示文件列表

2017-08-07
阅读 2 分钟
7.7k
一步一步不学习Linux命令。 命令提示符 格式: [root@localhost ~]# 说明: 名称 作用 root 当前登录用户名 localhost 主机名 ~ 当前用户的家目录 # 超级用户提示符,普通用户提示符是$ 补充说明:root是管理员账户,使用其他账户登录显示为其他用户名。~为当前登录用户的家目录,root用户是在跟下的/root文件,某用户的...

理解vue中的组件(一)

2017-04-28
阅读 3 分钟
6k
看了Vue的文档,写得很简洁,但是并不简单。在自己学习的过程中踩过不少的坑,学习的时候把官网的例子从头到尾做了一遍,记录在github中[链接],学习中也有自己的心得体会,记录下来分享,希望对你的理解有所帮助。

探索Javascript设计模式---单例模式

2017-02-22
阅读 7 分钟
3k
最近打算系统的学习javascript设计模式,以便自己在开发中遇到问题可以按照设计模式提供的思路进行封装,这样可以提高开发效率并且可以预先规避很多未知的问题。

聊一聊ES6中class的使用

2016-11-20
阅读 4 分钟
13k
javacript中只有对象,没有类。它是是基于原型的语言,原型对象是新对象的模板,它将自身的属性共享给新对象。这样的写法和传统面向对象语言差异很大,很容易让新手感到困惑。