探索微前端架构:多种实现方式与实践思考

在当今的前端开发领域,微前端架构正逐渐成为热门话题。它借鉴了微服务的理念,将原本庞大的单体前端应用拆解为多个小型前端应用,并能让它们协同工作,就如同一个完整的应用一样。今天,咱们就一起来深入探讨微前端架构的几种常见实现方式以及在实际应用中需要考虑的方方面面。

一、微前端架构概述

微前端架构的核心思想,就是把 Web 应用从单一的单体应用转变成多个小型前端应用聚合而成的形态。这些小型前端应用具备独立运行、独立开发以及独立部署的能力,而且还能共享组件,实现并行开发。这里所说的前端应用是基于前后端分离的单应用页面,这是谈论微前端的基础前提。

前端国际化全流程解决方案

背景

进入项目组,接到的需求是vue框架的项目实现国际化,实现中英文版本的切换。
目前常用的前端国际化实现方式是使用配置文件的方式,使用的是同一套界面,根据语言的不同加载对应的配置文件。

而实现这一功能,面对的问题是需要将项目中的中文抽离出中文的语言包,并将其翻译输出英文语言包,以及项目中中文替换成语言包中的变量,工作量大且容易出错。
因此,我们需要一种更智能、更高效的解决方案来应对这一挑战,经过深入研究各种技术方案,是不是可以通过插件实现自动识别代码中的可翻译字符串、生成翻译文件并同步不同语言这一繁琐的过程呢 – 于是一个搞定项目国际化的插件就此诞生。

vue2老项目vite升级改造

前言

Vite是一种新型前端构建工具,能够显著提升前端开发体验。它主要由两部分组成:

Vite 意在提供开箱即用的配置,同时它的 插件 APIJavaScript API 带来了高度的可扩展性,并有完整的类型支持。

vite包含如下特点:

  • 光速启动
  • 热模块替换
  • 按需编译

本次在开发环境增加vite的启动方式,提升开发效率,在生产环境保持原有模式。

如何做组件库的单元测试

前言

在我们开发完一个组件库的后,在做单元测试时,代码覆盖率常常被拿来作为衡量测试好坏的指标,甚至,用代码覆盖率来考核测试任务完成情况,比如,代码覆盖率必须达到80%或 90%。于是乎,测试人员费尽心思设计案例覆盖代码。用代码覆盖率来衡量,有利也有有弊。

首先,让我们先来了解一下所谓的“代码覆盖率”。我找来了所谓的定义:

代码覆盖率 = 代码的覆盖程度,一种度量方式。

关于如何开发组件库,可看这篇:

如何基于vue开发ui组件库(heaven-ui)

如何搭建一个自己的脚手架

脚手架

搭建脚手架的目的就是快速的搭建项目的基本结构并提供项目规范和约定。目前日常工作中常用的脚手架有 vue-cli、create-react-app、angular-cli 等等,都是通过简单的初始化命令,完成内容的快速构建。

其实我们也可以用git clone url来新建(复制)项目,再 low 一点的方法就是复制粘贴整个文件夹,一样也能达到初始化的目的。

脚手架的本质也是从远程下载一个模板来进行一个新项目,但是脚手架可是高级版的克隆,它主要是提供了交互式的命令让我们可以动态的更改模板,然后用一句命令就可以实现其他内置依赖的初始化,方便了多人协作,不需要将文件传来传去。

接下来我们就开始实现一个简易版的脚手架heaven-cli(可自行命名),目标是实现一个heaven init template-name project-name这样的命令,废话少说,开始进入正题吧!

pm2的基本使用

PM2

PM2 是一个带有负载均衡功能的 Node 应用进程管理器。

主要特性:

  • 内建负载均衡(使用 Node cluster 集群模块)
  • 后台运行
  • 0 秒停机重载
  • 具有 Ubuntu 和 CentOS 的启动脚本
  • 停止不稳定的进程(避免无限循环)
  • 控制台检测
  • 提供 HTTP API
  • 远程控制和实时的接口 API(Nodejs 模块,允许和 PM2 进程管理器交互)

理解js中的new

  • 新生成了一个对象
  • 链接到原型
  • 绑定 this
  • 返回新对象

在调用 new 的过程中会发生以上四件事情,我们也可以试着来自己实现一个 new

1
2
3
4
5
6
7
8
9
10
11
12
13
function create() {
// 创建一个空的对象
let obj = new Object()
// 获得构造函数
let Con = [].shift.call(arguments)
// 链接到原型
obj.__proto__ = Con.prototype
// 绑定 this,执行构造函数
let result = Con.apply(obj, arguments)
// 确保 new 出来的是个对象
return typeof result === 'object' ? result : obj
}

node版本切换工具n的使用介绍

node版本切换工具n的使用介绍

n

交互式管理 Node.js 版本

支持的平台

n在 macOS、Linux(包括适用于 Linux 的 Windows 子系统)和各种其他类 Unix 系统上均受支持。它被编写为 BASH 脚本,但不需要您使用 BASH 作为您的命令外壳。

n 在 Microsoft Windows(如 PowerShell)的本机 shell、Windows BASH 的 Git 或 Cygwin DLL 中不起作用。

搭建组件库文档

前言

在我们开发完一个组件库的时候,需要有一个组件说明文档,文档页面是最直接的获取信息的窗口。而文档页一般包含了这些信息:

  • 组件的描述
  • 组件 Demo 示例的展示、描述和源码
  • 组件的参数文档

组件说明文档是让其他人了解组件库的关键环节,包括组件库的适用范围(pc端,移动端,轻量级还是重量级),兼容浏览器的版本,设计原则和背景,以及社区生态,使用方法等。

关于如何开发组件库,可看这篇:

heaven-ui

文档生成

这里推荐 vuepress ,可以快速帮我们完成组件库文档的建设。(https://vuepress.vuejs.org/zh/guide/)

vuepress是一个文档生成工具,默认的样式和vue官方文档几乎是一致的,因为创造它的初衷就是想为vue和相关的子项目提供文档支持。它内置了 Markdown的扩展,写文档的时候就是用 markdown来写,最让人省心的是你可以直接在 Markdown 文件中使用Vue组件,意味着我们的组件库中写的一个个组件,可以直接放到文档里去用,展示组件的实际运行效果。 我的案例网站也就是通过vuepress来写的,生成静态网站后,用 gh-pages 直接部署到github上,也可以直接部署到我们自己的网站上。

vuepress更好的一点在于你可以自定义其webpack配置和主题,意味着你可以让你自己的文档站点在开发阶段有更多的功能特性的支持,同时可以把站点风格改成自己的一套主题风格。这就无需我们重头开始去做一套了,对于咱们想要快速完成组件库文档建设这一需求来说,还是挺有效的。


:D 一言句子获取中...