微前端架构方案——qiankun

微前端架构方案——qiankun

qiankun是基于Single-SPA的微前端实现库。

qiankun中的每一个微前端应用都有自己独立的生命周期和上下文环境,每个微前端内可以使用自己的技术栈。

阅读更多
微前端架构

微前端架构

微前端是一种前端架构。

类似于后端的微服务架构,微前端就是将传统的SPA拆分为多个独立的前端模块,每个模块内可以使用不同的技术栈,多个模块可以由多个团队独立开发、测试、部署。

阅读更多
js手写发布订阅(pubsub)

js手写发布订阅(pubsub)

面了一个央企,一上来就让我手写pubsub,没写出来,今天梳理和学习一下怎么写。

发布订阅模式:包含发布者(publisher),订阅者(subscriber),消息中心(message center)。

发布者发布消息给消息中心,并且可以携带参数。

订阅者向消息中心订阅消息,并且可以获取发布者发送的参数。

消息中心在获取到发布者的消息后通知订阅者并且转发参数。

阅读更多
js箭头函数(lambda表达式)和普通函数的区别
JavaScript异步编程

JavaScript异步编程

JavaScript异步编程的进化历程:callback -> Promise -> Generator -> async/await

异步的意思是该代码与其他代码的关系是异步执行的,而在该代码自己内部是同步执行的。

阅读更多
列出页面上出现次数前n的标签名
《JavaScript语言精粹》读书笔记
实现call, apply和bind

实现call, apply和bind

实现call

思想

实现一个call无非就是下面几点:

  1. 第一个参数传入null时,this指向window。
  2. 第一个参数传入对象时,this指向该对象。
  3. 接受剩余参数传入。
  4. 返回函数执行的结果。
阅读更多
call, apply和bind
undefined和null的区别

undefined和null的区别

js 最初设计的缺陷导致 js 神奇的存在两个空值: undefinednull
其他语言中有且只有 null , NULL 等。

实际开发中,将一个变量赋值为 undefinednull 几乎没有区别,且两者都为 Falsy

那么两者的区别到底是什么呢?

阅读更多