2023年中高级前端养成指南-需要关注和学习的13大类80余个前端技术栈与前端趋势-看这篇就够了系列

news2024/9/24 1:14:23

今天是兔年开工的第一个星期一,我们又要投入到忙碌的工作了。

以下是imqdcn研究整理的2023年中高级前端养成指南,收藏起来,从开工第一天起,立下全新的计划和目标,愿你在兔年大展宏兔,扬眉兔气。

文章目录

    • 一、基础语言(前端语言三要素)
    • 二、浏览器 API
    • 三、最近新增的 JS 对象、方法、属性
    • 四、前端框架
    • 五、前端构建化工程化工具
    • 六、前端测试工具
    • 七、移动端和客户端开发(多平台开发)
    • 八、SSR服务器端渲染框架
    • 九、项目管理
    • 十、工具类库(包含npm 依赖包)
        • 1、工具类
        • 2、日期管理
        • 3、数据可视化
        • 4、Ajax
        • 5、后端框架(nodejs环境)
        • 6、npm 工具函数
        • 7、JS 运行环境(让 JS 能脱离浏览器运行)
    • 十一、JS 的扩展编程语言
    • 十二、需要熟悉的其他后端语言之一
    • 十三、高级前端需要关注的技能、趋势
    • 回顾

一、基础语言(前端语言三要素)

前端语言三要素

1、HTML5诸如拖拽(dragable属性)、本地存储(localstage)等新特性,部分见浏览器API

2、CSS

  • Flexbox(弹性布局)
  • Grid (栅格布局)
  • Multi-Column (多列布局)
  • CSS Function (CSS 函数)

3、JSON

  • json schema- 可进行json数据格式验证

二、浏览器 API

浏览器 API

1、webRTC

一项实时音视频通用数据传输技术

2、geolocation

H5自带的地理定位对象

3、webSocket

双向通信协议,能实时聊天通信,比如在网页中实时推送后端消息

4、webXR device

在网页中实现虚拟现实

5、shadow DOM

DOM中的DOM,类似于虚拟DOM

6、custom element

自定义元素,可以同 shadow dom 一起使用

7、webGL

一种3D绘图协议,区别于H5的canvas的2D绘图

8、File system access api

让浏览器有能力操作本地文件-类似于nodejs提供的File System API

9、web speech

H5新增的语音识别和语音合成API

10、page visibility

页面可见性,可以获取到一个网页是否可见的状态,并能获取可见性变化的事件

11、service workers

Web Workers 的一种实现,功能是可以拦截、处理请求,配合 CacheStorageapi,可以做到将资源存储到本地等,实现离线访问

12、动态 import

动态import的作用就是按需加载想要引入的模块

13、Intl

Intl 对象提供了精确的字符串对比、数字格式化,和日期时间格式化等属性和方法

14、Web Animations

HTML版的动画实现,希望带来和CCS动画一样的强劲表现

15、Broadcast Channel API

可以让同一网站下的不同页面之间进行通信

16、Web Share API

用于将文本、链接、文件和其他内容共享到用户选择的任意共享目标中,这些共享目标通常包括系统剪贴板、电子邮件、联系人或消息应用程序,以及蓝牙或 Wi-Fi 通道。从属于navigator对象

三、最近新增的 JS 对象、方法、属性

新增JS特性

1、Proxies

这个名字看起来很陌生,其实就是Proxy Object对象

2、Private Fields

通常指的是在一个类(Class)中使用#前缀来创建私有成员

3、Nullish Coalescing

空值合并操作符(??),是一个逻辑操作符,当左侧的操作数为null或者undefined时,返回其右侧操作数,否则返回左侧操作数

4、Numeric Separators

ES2021新增的数字分隔符,它在数字中用下划线 (_)分隔数字,从而使长数字文字更具可读性。

5、Top Level await()

在顶层使用await,而不是只能在async内部使用。虽如此,但有一定的使用条件。

6、Array.prototype.at()

可以让我们更加方便的访问到 数组字符串末尾的元素。

7、Object.hasOwn()

Object的静态方法,主要目标是用来替代Object.prototype.hasOwnProperty(),如果是对象自己的属性,则返回true,否则返回false

四、前端框架

Svelte

1、Solid

长得像react,但是它的思路和react又不一样

2、Svelte

Svelte 是一种全新的构建用户界面的方法。传统框架如 ReactVue 在浏览器中需要做大量的工作,而 Svelte 将这些工作放到构建应用程序的编译阶段来处理

3、Qwik

新时代的 SSR 框架破局者,挑战 NextRemixNuxt 等的地位。

4、react 和生态工具

依然主流

5、vue3 和生态工具(pinia等)

依然在国内用得更多

6、preact

有与react一样的API,替代React的轻量级前端框架

7、ember.js

Ember.js是一个开源的JavaScript客户端框架,用于开发Web应用程序,并使用MVC(模型 - 视图 - 控制器)架构模式来构建跨设备的UI界面。该框架其实已经推出了好几年,只是在国内关注和使用的人相对而言不多

8、Lit

用于构建Web组件(web componen)

9、Tailwind CSS(一款CSS框架)

提供了很多诸如 flex, pt-4, text-centerrotate-90 这样的颗粒度的CSS class,用来构建出任何需要的样式,与bootstrap的构建UI界面是不一样的。PS:这个框架已经存在很多年

五、前端构建化工程化工具

vite

1、vite

vue3的作者尤雨溪开发的下一代前端构建化工具。

2、esbuild

esbuild基于Golang开发的一款打包构建工具,相比传统的打包构建工具,主打性能优势,在构建速度上可以快 10~100 倍,vite也使用了esbuild

3、SWC

全称为Speed Web Compiler,其是基于Rust实现的工具,目前被很多前端知名项目(Next.jsParcelDeno)所使用,对标的工具就是Babel

4、Parcel

0配置的开箱即用的web构建工具,渐进式,可扩展。

5、Rollup

是一个 JavaScript 模块打包工具,可以将多个小的代码片段编译为完整的库和应用。vite也使用了它

6、tsc CLI

TypeScript的命令行工具。可以将TS编译为一个指定的JS文件。

7、Snowpack

目前已经不维护了,并推荐使用Vite

8、Turbopack

基于 RustWebpack 继任者,开发牵头人为webpack的创始人。不过目前表现得不愠不火

9、Rome

Facebook 推出的前端工具链,涵盖了编译、代码检测、格式化、打包、 测试框架等工具。它旨在成为处理JavaScript 源代码的综合性工具

六、前端测试工具

cypress
1、vitest

是一个单元测试框架,也可以用于组件测试,它由 Vue / Vite 团队成员开发和维护。在 Vite 的项目集成它会非常简单,而且速度非常快

2、Playwright

也是一个非常好的端到端测试解决方案,支持测试范围更广的浏览器品类(主要是 WebKit 型的浏览器)

3、jest

广受欢迎的单元测试框架

4、cypress

前端 E2E端到端)测试工具,同时支持集成测试和单元测试,其具有信息丰富的图形界面、出色的调试性、内置断言和存根、抗剥落性、并行化和快照等诸多特性

5、storybook

严格意义上不算是测试工具,它其实是集成了UI组件、页面开发、测试、文档生成的前端套件。

6、mocha

一种单元测试框架,既可以在浏览器环境下运行,也可以在node.js环境下运行

7、Peeky

速度极快的单元测试运行器,它也是由 Vue 核心团队成员创建的,并提供了一个基于图形用户界面(GUI)的测试界面

七、移动端和客户端开发(多平台开发)

electron
1、progressive web apps (PWA)

可以媲美原生移动端应用的web App

2、electron

可以认为是PWA的一种实现,能用web前端的方式开发桌面端软件。

3、react native

react来开发移动端软件(可在应用市场上架),对于追求更接近原生APP的首选

4、expo

Expo 包含一组工具、库和服务,可以让你用 JavaScript 构建 AndroidiOS 的原生应用。该开源项目主要是客户端软件,包括客户端 app、模块、应用等

5、Ionic

Ionic Framework 是一个移动 UI 工具包,用于构建高质量,跨平台的本机和 Web 应用程序体验。

6、flutter|uniapp

国内用得更多的即为flutter和uniapp

7、WebAssembly (WASM)

并非纯前端技术,WASM是一种高效的,低级别的编程语言。 它让我们能够使用JavaScript以外的语言(例如C,C ++,Rust或其他)编写程序,然后将其编译成WebAssembly,进而生成一个加载和执行速度非常快的Web应用程序,比如近期非常流行的运行在浏览器的设计软件figma就用了该项技术

八、SSR服务器端渲染框架

nuxt-js

1、Next.js

可以结合reactSSR框架

2、Nuxt.js

可以结合vueSSR框架

2、Remix

是一个全栈ssr框架,对标next,但和next有一些不同,它更快(和vite一样快),体验更好

3、Astro

作者还开发过SnowPack,是一个静态网页生成器,同时支持 SSR 服务端渲染

4、Gatsby

Gatsby 是一个基于 React 的免费、开源框架,用于帮助开发者构建运行速度极快的 网站 和 应用程序,它也是支持SSRCSR(客户端渲染)的

5、Sveltekit

可以结合SvelteSSR框架

九、项目管理

guide-to-monorepos
1、Monorepos(单一代码库)

在版本控制系统的单个代码库里包含了许多项目的代码。区分于multirepos(多代码库)

2、pnpm

单一代码库的管理工具,可以用于管理Monorepos

十、工具类库(包含npm 依赖包)

npm工具类库

1、工具类

  • Lodash|Lodash-es
  • RxJS
  • Zod
  • Immer
  • Underscore.js
  • Ramda

2、日期管理

  • Moment
  • date-fns

3、数据可视化

  • Chart.js
  • D3
  • Highcharts
  • Echarts

4、Ajax

  • axios
  • Apollo Client
  • fetch
  • 手写 promise 库

5、后端框架(nodejs环境)

  • Express
  • Next
  • Fastify
  • Strapi
  • Koa

6、npm 工具函数

  • nvm
  • Babel

7、JS 运行环境(让 JS 能脱离浏览器运行)

  • nodejs
  • Browser
  • Service Workers

十一、JS 的扩展编程语言

typescript

1、TS

全称typescript,中高级前端必会

2、Elm

Elm是一种函数式语言,可编译为HTMLCSSJavaScriptElm为函数式反应编程而设计,便于创建高可交互应用

3、CoffeeScript

它不是JS,可以通过编译器编译成对等的JS代码,有停止维护的趋势。相当于要学习一门新的小型语言,建议学TS

4、Flow

Facebook团队开发的JS静态类型检测器。功能基本同TS

十二、需要熟悉的其他后端语言之一

后端开发语言
1、Python

依然流行,但是当做web后端的不多

2、Java

更多用于中大型应用的后端语言

3、PHP

更多用于中小型应用的后端语言

4、Rust

Mozilla主导开发的通用、编译型编程语言,设计目标之一,是要使设计大型的web应用的客户端和服务器的任务变得更容易,Rust 可以被编译成 WebAssemblyWebAssembly 是一种 JavaScript 的高效替代品

十三、高级前端需要关注的技能、趋势

web3
1、前端框架、Rendering Frameworks、测试工具、移动端和客户端、构建等工具发展得非常迅速

2、原生开发越来越受欢迎。同时,2021 年发布的 Tauri 得到了 91.7% 开发者的支持

3、JavaScript 构建工具层出不穷。Parceltsc CLIRomeSnowpackSWCesbuildVite 等都是近两年新诞生的工具。不过在满意度上,新工具后来居上,ViteesbuildSWC 分别排在 Top 3 位置

4、尤雨溪2019 年发布的Vite 短短 3 年便有取代 webpack 之势, 摘得三项开发者最常用、最满意、关注度最高的桂冠(根据国外stateofjs.com 网站发布的 JS 调查报告)

5、对于开发者而言,JavaScript 最难的三个痛点分别是代码架构、管理依赖项、状态管理。

6、目前 JavaScript 最缺少的功能是:Static Typing、标准库、更好的 Data Management

7、微前端解决方案:乾坤

8、SSG(静态站点生成器)

9、docker在前端开发的应用

10、人工智能AI在web前端方面的应用

11、低代码平台

12、web3、元宇宙

13、物联网开发,比如webgis开发平台

回顾

如果2022年的前端技能还有缺失,赶紧通过这个来回顾吧:2022年中高级前端需要学习的25种前端技术栈。

后续我将会根据以上技术栈出一系列的使用教程,敬请关注。

以上由WEB前端全栈圈研究和整理,未授权禁止转载。

如果你对web前端开发、面试感兴趣的话可以加:imqdcnn。群里有各种学习资源发放,免费答疑,更有行业深潜多年的技术牛人分析讲解。

祝你能成为一名优秀的WEB前端开发工程师!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/187954.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【SpringCloud】Sentinel的基础概念及使用

一、雪崩问题1.问题描述微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会被阻塞。此时,其它不依赖于服务I的业务似乎不…

SAP 实施新的金融工具 IFRS17规则解析

在实施新的金融工具 IFRS 规则的过程中,保险公司现在看到了保险负债的新标准。经过多年的长期讨论,IASB 于 2016 年 11 月承诺在 2021 年 1 月 1 日生效,并明确表示不会考虑进一步推迟法规的通过日期。由于有必要将 2020 年作为比较期&#x…

[思考进阶]05 人与人之间的差距,在于“自律”

除了要提升自己的技术能力,思维的学习和成长也非常非常重要,特推出此[思考进阶]系列,进行刻意练习,从而提升自己的认知。 我认识两个成功的长者。 其中有一个人,每天记录当天的重要事项,比如今天和谁签了什…

英语学习 1

1 词汇积累 1、evolution 进化、发展 2、work efficiency 工作效率 3、material 物质的、非精神上的 4、mental 精神的 5、concern 担忧 6、physical contact 身体接触 7、imply 暗示 8、interpersonal relationships 人际关系 9、indifference 漠不关心 10、depression 抑郁 …

【八大数据排序法】冒泡排序法的图形理解和案例实现 | C++

第十四章 冒泡排序法 目录 第十四章 冒泡排序法 ●前言 ●认识排序 ●一、冒泡排序是什么? 1.简要介绍 2.具体情况 3.算法分析 ●二、案例实现 1.案例一 2.案例二 ●总结 前言 排序算法是我们在程序设计中经常见到和使用的一种算法,它…

在线支付系列【10】微信支付接入前准备

有道无术,术尚可求,有术无道,止于术。 文章目录前言1. 获取基本参数商户号(mchid)应用ID(appid)绑定商户号和应用ID2. 配置API v3密钥3. 下载并配置商户API证书3.1 简介3.2 生成证书串3.3 获得商…

卷积神经网络CNN :1.基础知识

​卷积神经网络是一种深度学习概念,专为处理图像而构建。机器学习是计算机从过去的经验中学习的概念。深度学习是机器学习的高级部分。CNN 旨在寻找视觉模式。 当我们人类看到图像时,我们看到物体、颜色等。我们在成长过程中学习这些东西,但计…

CRPS:贝叶斯机器学习模型的评分函数

连续分级概率评分(Continuous Ranked Probability Score, CRPS)或“连续概率排位分数”是一个函数或统计量,可以将分布预测与真实值进行比较。 机器学习工作流程的一个重要部分是模型评估。这个过程本身可以被认为是常识:将数据分…

【CLYZ集训】变量取值【网络流】

思路: 容易把答案转化为∑siwi∑ti(wx−wy)\sum{s_iw_i}\sum{t_i(w_x-w_y)}∑si​wi​∑ti​(wx​−wy​),然后我们设初始代价为−∑∣si∣wi-\sum{|s_i|w_i}−∑∣si​∣wi​,然后考虑建模。 如果Si大于0,则源点向i连一条流量为2…

【Java AWT 图形界面编程】FileDialog 对话框 ( 打开文件 | 保存文件 | 构造函数 | 获取文件路径 | 获取文件名称 | 代码示例 )

文章目录一、FileDialog 对话框1、构造函数2、获取文件路径3、获取文件名称二、FileDialog 对话框代码示例一、FileDialog 对话框 在开发时 , 经常遇到文件相关操作 , 如 : 选择文件 , 保存文件 等 , 在 AWT 中使用 FileDialog 文件对话框 实现上述功能 ; 1、构造函数 FileDial…

量子计算初创公司Oxford Ionics完成3000万英镑A轮融资

(图片来源:网络)未来,量子计算机会解决世界上最大的超级计算机无法解决的问题。然而,大规模制造量子计算机仍然是一个巨大的挑战。英国量子计算初创公司Oxford IonicsA轮融资获得的3000万英镑(约合人民币2.…

Java集合(六)Set接口和常用方法

Set接口基本介绍: (1)无序(添加和取出的顺序不一致),没有索引 (2)不允许重复元素,所以最多包含一个null (3)JDK API中Set接口的实现类有: 其中set接口的已…

2023年,最新最权威的上海Java培训机构排行榜出炉!

2022也许你的很多学习和工作计划都被打乱,但是过去的2022不管多艰难,多难熬。都已经成为过去式。2023悄然而至,新的一年,你我都该有新气象新动力,学习什么时候开始都不晚,想跨行从事软件开发、IT行业的小伙…

跳槽至今0 offer的大冤种,问题到底出在哪儿?

众所周知,2022年市场很难!看着企业们纷纷裁员,甚至连内推这个后门都走不通!哪怕有面试,都是屡屡碰壁,你想清楚问题出在哪了吗?😭“求职不得,夜不能寐;三更半夜…

C++基础——C++ 指针

C基础——C 指针C 指针什么是指针?C 中使用指针C 指针详解C Null 指针C 指针的算术运算递增一个指针递减一个指针指针的比较C 指针 vs 数组C 指向指针的指针(多级间接寻址)C 传递指针给函数C 指针 学习 C 的指针既简单又有趣。通过指针&…

Python语言基础学习之Python基础之列表介绍和循环遍历

今天给大家分享一些Python基础 (列表基础和循环遍历介绍),一起来看看吧~ 一、列表介绍 想一想: 字符串可以用来存储一串信息,那么想一想,怎样存储所有同学的名字呢?定义100个变量,每个变量存放一个学生的姓名可行吗…

LinkedList VS ArrayList~

ArrayList VS LinkedList: One: ArrayList:基于数组,需要连续内存LinkedList:基于双向链表,无需连续内存Two: ArrayList:随机访问快(指根据下标访问)LinkedList:随机访问慢(要沿着链表遍历)点击ArrayList的源码: 点击LinkedList的源码: Ar…

九龙证券|看好2-4月份汽车月度销量增速的逐月改善

机构指出,考虑到22年末购置税补助等方针到期,叠加春节假期消费需求的提早,估计年内乘用车销量绝对值及同比增速均于1月触底,后续方针影响、消费回暖等一期效果下,看好车市回暖,估计销量增速将于2-4月逐月回…

15.Set系列,可变参数、Collections

目录 一.Set系列 1.1 Set系列集合特点 1.2 Set集合实现类特点 1.3 HashSet 1.3.1 特点 1.3.2 优点 1.3.3 在理解原理之前要知道的几个概念。 1.3.4 底层原理 1.3.5 哈希表的形成过程/元素的存入过程(Jdk8的版本) 1.3.6 注意事项 1.4 linkedHa…

通用数字支付网络(UDPN)于达沃斯论坛期间正式发布

2023年1月19日,在瑞士达沃斯举行的世界经济论坛 (WEF) 会议期间,通用数字支付网络 (Universal Digital Payment Network, UDPN)正式对外发布。 近年来,全球各国央行数字货币(CBDC)得到了广泛的关注与长足的进步&#…