愿你坚持不懈,努力进步,进阶成自己理想的人

—— 2017.09, 写给3年后的自己

搜索分类Javascript下的文章

Chrome Extension 开发总结(二):通信机制

一、前言 在Chrome Extension中,存在多种类型的脚本,它们具有不一样的API访问权限、域访问权限和DOM访问权限,因此他们能够各司其职,完成不一样的角色职责。有时候,当当前的脚本不支持某一特定的权限时,与具备相应权限的脚本进行通信,就尤为重要。所以本文主要介绍Chrome Extension...

Jest中提供的工具(jest-platform)总结

Jest中有一些独立的包,我们可以使用这些包来使用一些Jest的特性。这些可能对于开发一些工具,做一些自动化流程时是非常有帮助的 一、jest-changed-files 用来识别git/hg仓库文件变更的工具,暴露了两个方法: getChangedFilesFor...

彻底理解JavaScript中的Event Loop

一、前言 Javascript从诞生之日起,就一直是一门单线程的非阻塞的语言。即便后面出现了WebWorker,但是其本质上还是主线程的子线程,帮助主线程分担一部分计算任务,并非真正意义上的多线程。由于浏览器环境和Node环境在处理Event Loop上大致相同,但又有所区别,所以本文将区分开讲解 二、...

关于前端枚举的一点思考

一、枚举的业务场景与遇到的问题 我们在日常业务开发中,经常遇到枚举,如商品状态、页面状态、审核状态等,翻阅以往的一些业务代码,会发现很多地方都是这么写的: <span v-if="status == 0">审核中</span> <span v-else-if="...

可能是比Mixin更好的方案:React新特性Hooks探索

一、什么是Hooks? Hooks是React新引入的一个特性,它允许我们能够不采用类式声明组件方式来使用状态和React其他特性(如生命周期、Ref、Context等),简单的例子如下: import { useState } from 'react' function Example() { const [count, se...

深入解析Vue依赖收集原理

一、先谈观察者模式 观察者模式是一种实现一对多关系解耦的行为设计模式。它主要涉及两个角色:观察目标、观察者。如图: 它的特点:观察者

React学习笔记(五):高阶知识(下)

一、错误边界(Error Boundaries) 错误边界是用来捕获子组件树内的Javascript异常,记录错误并展示一个回退的UI的React新特性。当在渲染期间发生错误的时候,就可以避免整棵组件数发生异常 不过,错误边界无法捕捉以下错误: 事件处理 异步代码(setTimeout或者reques...

Redux学习笔记(二): 异步处理

一、异步action 简单的应用如todo应用,涉及的数据操作都是同步操作。但是一般应用开发中都不可避免异步操作,那么如何用redux处理异步数据流呢? 1、Action 调用异步API时,通常要考虑三个时刻: 发起请求时 请求成功 请求失败 所以一般API调用过程中涉及三...

Redux学习笔记(一):入门

由于React只是DOM的一个抽象层,不是一个完整的Web应用的解决方案。为了开发大型的Web应用,我们还需要有一个好的架构来实现代码结构、组件间的通信。Redux应运而生 一、什么是Redux Redux是一个JavaScript状态容器,提供可预测化的状态管理。Redux除了可以和React一起使用外,还支持其他的界面库。...

ReactRouter4学习笔记(二):API

一、ReactRouter的三种路由 1、BrowserRouter <BrowserRouter>使用HTML5的history API(pushState、replacestate和popstate事件)来同步URL和UI,用法:

ReactRouter4学习笔记(一):入门

一、React-router4的理念 react-router4的核心设计理念是“动态路由” 1、静态路由 在Rails、Express、Ember、Angular等库,以及ReactRouter在4.0之前的版本中,使用的都是静态路由。使用静态路由,在应用渲染前的初始化阶段,就需要配置好路由信息。

vue-loader使用总结

vue-loader是用来加载.vue文件的,下面来总结一下vue单文件组件以及vue-loader的用法 一、Vue组件细则 .vue是一个自定义的文件类型,它采用类html语法来描述一个Vue组件。每个.vue组件包含有三种顶级的语言块: