微前端是什么
我觉得没有什么说的必要,可以百度到
微前端能解决什么
也没有什么必要赘述
微前端能为我们带来什么
不被时间所淘汰的技术选型!!!
选型开始
备选库
SingleSpa:可以说“万物基于SingleSpa”,当前流行的大量框架其实是SingleSpa的上层封装。
这里是一些很浅很浅的东西,大佬们不要喷我=。=。
qiankun将应用分为两种:主应用,微(子)应用
主应用是一个基座,承载着各个子应用。
主应用负责各个应用之间的加载,通信和调度。
带🔥都说,这是微服务在前端的应用,不过我没做过服务端,对微服务不是很了解,因此不敢乱说。
我只做过客户端,从客户端的角度来看,这看上去就类似于iOS的组件化。将模块解耦后,通过主工程进行加载调用。这样一来有客户端背景的同学是不是就比较好理解了。
1 | import { registerMicroApps, start } from 'qiankun'; |
这里可以看到两步:注册,启动
之前干iOS的,写过一段时间swift,所以从js转到ts对我其实影响不太大。
只是有些知识点比较乱,没有串起来过。
首先我们需要上typescript的官方文档阅读一哈文档
中文网很久没有更新了,不过github有老哥一直在翻译zhongsp/TypeScript
实际上现在看官网也有中文语言这个选项了,但是翻译完成的文章不太多,今后应该会越来越多。
那么接下来就是把知识点串起来了
以下都是个人观点,如果有不对,望大牛指点
个人觉得不要,typescript也是有版本的,版本随着项目走,项目去安装typescript即可,完全没有必要全局安装。
常见的需求,开发移动端h5,在移动端浏览器或者移动端app上渲染。
前端不知道怎么在移动端调试,移动端不知道怎么调试网页。
经常出了问题不知道是找移动端解决还是找前端解决。
好了,我们举个例子:
公司小改改写了个页面,要在app的webview里加载,本地调试杠杠的,自己手机杠杠的,但是一上特意准备的测试机,就白屏了。
我号称是公司移动端里最会写前端的,前端里最会写移动端的。只能露一手了[LetMeSee]
如果你是前端,可以找个客户端,按此方法操作打开调试控制台,由你来调试网页上的问题
如果你是个移动端,你就可以按照这个方法,为前端同学准备好调试环境,剩下的网页调试工作交给他们
其实很早我就知道,babel会帮助我们做一件事,就是把高版本的ES语法,转换为低版本的ES语法,以确保在低版本浏览器上能正确运行。
但是一直我都不知道怎么去操纵它,只知道需要一堆配置,配合webpack可以做这件事(甚至我一度认为必须使用webpack才能做这件事)。
其实如果用百度搜索,集成的东西有各种es版本的依赖,配置文件有js,rc,json文件,乱七八糟什么都有。
其实这是历史原因。但现在已经2021年了,咱们就直接按官网说的来。
1 | npm install --save-dev @babel/core @babel/cli @babel/preset-env |
当然,我个人认为,如果不需要兼容IE的话,应该不需要下载polyfill了
在开发过程中,总会有一些模板代码需要编写,比如我是写vue的,vue2中的各种namespace,vue3中的各种引入。几乎是每个vue文件都需要的。
每次写都累的一批,也毫无技术含量。纯体力活,但还不得不做。
这时候大伙可能会用各自习惯的编辑器去编写各式各样的代码块来减轻工作量。
但是团队中编辑器并非统一的,众所周知,前端不仅语言众多,开发工具也多的一批,也没有什么好的跨编辑器跨机子的代码块存储方式(大厂统一云编辑器的往后稍稍,不包含你们)
这个时候就发现了plop(在跟着花裤衩手摸手学习vue-element-admin的时候学到的)。
解决了上述的同一个项目跨编辑器跨机器编写前端代码块的问题。
有些component需要全局注册的,但是在main.js中全局注册又太麻烦了。
store采用modules方式分包,使用的时候也要手动注册。
store刷新丢失,需要持久化。
这时候解决前两个问题,可以使用require.context
解决最后一个问题可以使用vuex-persistedstate
Vue内置了webpack的部分配置,这个咱们就不多说了。
require.context是webpack的api。