分类: frontend

redux源码分析

前言为使页面组件和业务逻辑解耦,前端相继涌现出 MVC(Model-View-Controller)、MVP(Model-View-Presenter)、 MVVM(Model-View-ViewModel) 模式。在双向数据流的实现中,同一个 View 可能会触发多个 Model 的更新,并间接引起另一个 View 的刷新,使得状态变更的线索及影响变得错综复杂。redux 延续了 flux 架构

jquery 动效分析

动效基础在阅读 jquery/effects 模块源码之前,有必要先了解一下制作前端动效的一些基本知识,其内容包含动效实现的基本原理、缓动函数等。对于以上内容,笔者将在这一小节一一加以介绍。 基本原理动效实现的基本原理如同逐帧制作动画,相隔时间较短的两帧动画可以促使人类视觉误以为那是连续的一个过程。术语刷新率 fps 指每秒更新多少帧画面。通常,每秒刷新 24 张画面最适宜于人类视觉,也就是单张画

修饰器

概述修饰器是 es7 中的一个提案,其本质为编译期间执行的一个函数,用于装饰类、方法、属性等,不能用于装饰函数(因为函数存在声明提升)。 使用 decorator(target, property?, desciptor?){} 语句声明修饰器函数,其中,参数 target 为目标函数,property 为属性,desciptor 为属性描述符,后两个参数用于装饰方法或属性的情景下。装饰类,在修饰

Vue 源码分析 - 数据侦测

序言数据侦测,也称为数据绑定,即是监测数据的更新状况,当数据更新时,触发后续动作的执行。以伪语法的形式,可以用 表达式 1 概括说明。 表达式 11234when(data changed){ do compute do reaction} 基于 表达式 1 ,有如下概念(基于 mobx 文档 整理): 概念 112345Observable: 监测数据,可以是状态,更新其

vue整体架构

目录结构1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011

typescript文档笔记

基础类型ts 基础类型包含 boolean, number, string, array, tuple 元祖, enum, any 任意类型, void 非任意类型(可赋值为 undefined 或 null,通常用于函数无返回值时), undefined, null, never 永不存在值的类型(通常用于函数报错或陷入死循环时), symbol。 其中,数值类型支持十进制、十六进制、八进制和二

flow使用指南

概述flow 是 facebook 推出的 js 代码类型检查工具。 flow 可借助 babel 编译,添加 babel-preset-flow 即可;babel-preset-react 包含 babel-preset-flow。或者借助安装 flow-bin 启动类型检查,flow-remove-types 移除类型标记。 通过在脚本前添加 // @flow 或 / @flow / 将文件标

mocha使用指南

概述mocha 是一款可运行在 node 环境或浏览器上的测试框架。 mocha 本身没有实现断言库,可使用 chai, should.js, expect.js, better-assert, unexpected 等断言库或 node 内置的 assert 模块。断言库错误输出需有 actual, expected 属性。 示例BDD123456789// BDD 风格,describe/co

chai使用指南

概述chai 是一款辅助 TDD 测试驱动开发, BDD 行为驱动开发 的断言库。 有关 TDD 和 BDD,可参考:开发人员看测试之TDD和BDDTDD 已死?让我们再聊聊 TDDBDD敏捷开发入门与实战 chai 的 TDD 模块只包含 assert 一种, BDD 模块包含 except, should 两种。 配置 chai.config.includeStack = false,错误输出

Enzyme使用指南

概述Enzyme 是一款 react 组件测试工具。 Enzyme 基于 cheerio 实现虚拟 dom 的查找和遍历;而 cheerio 号称为服务器端的 jquery 实现。 Enzyme 本身不实现测试和断言库,你可以选择使用 Mocha/chai, Jasmine, Jest 等测试或断言库。 使用 安装 npm i –save-dev enzyme。 针对项目中使用的 react 版本