前端开发都需要掌握那些技术?

2023-11-14

前端技术多且杂,那么作为前端开发者,我们可以从那些方面进行进阶提升呢?本文从以下几个方面进行了整理归纳

内容如下:

  • 一.网页开发
  • 二.小程序
  • 三.移动端
  • 四.桌面端
  • 五.其他技术

一.网页开发

这里指PC端网页开发,要求的技术主要有以下几类:

1.Vue、React 和 Angular

作为 MVVM 前端框架的三大巨头,在招聘信息中,基本都要求熟练掌握其中一种框架,并了解其原理。它们各自有各自的优点,Vue 使用便捷简单,React 编码更加灵活,Angular 则注重包容性。就流行程度而言,Vue 和 React 在国内更加受欢迎,所以我们在学习的时候可以优先选择这两个。

2.jQuery

曾经前端界的扛把子,那时前端还没得这么多五花八门的技术和框架,基本只要熟练掌握了 jQuery 就完全能找到工作了。这些年虽然一直在唱衰它,但现在仍然能在很多 C端产品上看到它的身影。

3.响应式开发

很多公司的门户网站基本会用到这个技术,这样可以节约成本。这项技术一般适用于简单网页,复杂网页做响应式比较困难,而且体验也不是很好。相关框架 BootStrap等。

二.小程序

小程序这块一般指微信小程序,当然还有支付宝、百度、头条和QQ等一系列小程序。下面我们就微信小程序为主,讲讲都有哪些开发方式。

1.微信小程序原生开发

官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ 

在微信小程序早期的时候,有许多问题:没有自定义组件、UI控制自由度不高、ES6支持度不高、开发工具不好用等系列问题,这也是导致第三方框架层出不穷的原因之一。当然,经过这些年发展,很多问题已得到解决。所以,如果没有多端的要求,完全可以采用原生开发的形式。

2.uni-app

官方文档:uni-app官网

uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。

3.Taro

官方文档:Taro 介绍 | Taro 文档

Taro 是一套遵循 React 语法规范的 多端开发 解决方案。使用 Taro,我们可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信/百度/支付宝/字节跳动/QQ/京东小程序、快应用、H5、React-Native 等)运行的代码。

4.其他

其他的小程序开发框架我觉得都没得太大的优势,以前比较流行的框架比如 mpvue 。

5.云开发

开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。
云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。

据说云开发在未来很有潜力,有兴趣的不妨去了解了解。

三.移动端

包含 Web App、Android App 和 IOS App。开发方式有以下两种。

1.Native App

即原生APP开发模式,利用iOS、Android开发平台官方提供的开发工具进行APP的开发。

2.Hybrid App

Hybrid App(混合模式移动应用)是指介于 web-app、native-app 这两者之间的 app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。 

主流开发框架有

1).RN(React Native)

官方文档:React Native 中文网 · 使用React来编写原生应用的框架

React Native使你只使用JavaScript也能编写原生移动应用。 它在设计原理上和React一致,通过声明式的组件机制来搭建丰富多彩的用户界面。

React Native产出的并不是“网页应用”, 或者说“HTML5应用”,又或者“混合应用”。 最终产品是一个真正的移动应用,从使用感受上和用Objective-C或Java编写的应用相比几乎是无法区分的。 React Native所使用的基础UI组件和原生应用完全一致。

与之对应的框架 Weex,支持 Vue.js 。这里没有单独列出来,因为它已经内置到 uni-app 中了。

2).Flutter

官方文档:Flutter中文网

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

当然,前面提到的 uni-app、Taro 也可用来开发 App,除此之外还有 Weex 等框架...

这里再推荐一篇 RN、Flutter 和 uni-app 之间的比较的文章:flutter、rn、uni-app比较 - DCloud问答

四.桌面端

桌面端开发框架也非常多,就前端而言,这里推荐下面这个框架

1.Electron

官方文档:Electron | Build cross-platform desktop apps with JavaScript, HTML, and CSS.

Electron是由Github开发,用HTML,CSS和JavaScript来构建跨平台桌面应用程序的一个开源库。 Electron通过将Chromium和Node.js合并到同一个运行时环境中,并将其打包为Mac,Windows和Linux系统下的应用来实现这一目的。

这里再推荐一个 Tauri 框架ya,不过这个框架相对而言学习成本要高不少,需要去学习 Rust 语言相关的知识。

五.其他技术

1.TypeScript

官方文档:TypeScript中文网 · TypeScript——JavaScript的超集

TypeScript 是 JavaScript 的一个超集,支持 ECMAScript 6 标准。TypeScript 由微软开发的自由和开源的编程语言。TypeScript 设计目标是开发大型应用,它可以编译成纯 JavaScript,编译出来的 JavaScript 可以运行在任何浏览器上。

现在有很多公司都要求开发者掌握 TypeScript。

2.前端工程化

作为前端工程师,我们需要具备工程化思想,并掌握相关框架的使用,如:Webpack、Vite、Gulp、Grunt 等。

3.算法,设计模式

一般大些的公司都要求我们掌握一些常用的算法和设计模式。 

4.网络、安全

http、跨域、CSRF(跨站请求伪造)、XSS(跨域脚本攻击)等。

5.Node.js

简单的说 Node.js 就是运行在服务端的 JavaScript。最近 Node.js 的作者又出了一个和 node 相似的 deno => De(Destroy)no(Node),可简单的理解为 node 的升级版,以解决 node 中存在的难以解决的问题。

6.数据可视化

相关技术和框架:SVG、Canvas、WebGL;Echarts(可视化图表库)、Three.js(主流 3D 绘图 JS 引擎)、Cesium(跨平台、跨浏览器的展示三维地球和地图的 JS 库)等。

一些第三方的数据大屏:阿里云-DataV、腾讯云图

7.微前端

早期实现微前端是通过 iframe,但 iframe 更适合静态、纯展示类的页面,对于交互性强的应用并不适合。

微前端的好处在于各个微应用之间彼此独立(独立开发、独立部署、技术栈无关)。

复杂的中后台应用中,适合采用微前端进行开发,以避免后期项目难以维护。

常用微前端框架:

qiankun

single-spa

wujie

8.PWA

PWA 全称 Progressive Web App,即渐进式 WEB 应用。

优点:

  • 可以添加至主屏幕,点击主屏幕图标可以实现启动动画以及隐藏地址栏
  • 实现离线缓存功能,即使用户手机没有网络,依然可以使用一些离线功能
  • 实现了消息推送

讲讲PWA

有哪些使用 PWA 的 app ?

9.前端自动化测试

常用框架:Jest

一些相关专业名词:

- TDD,Test Driven Development 测试驱动开发

- BDD,Behavior Driven Development 行为驱动开发

常见组合:

- Vue + Vue-test-utils

- React + Enzyme

10.更多

这里就不在继续往下写了,因为太多了,比如:游戏、视频、直播、图形处理等方面,还有 AR(增强现实)、VR(虚拟现实)等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端开发都需要掌握那些技术? 的相关文章

随机推荐

  • php uncaught thrown,PHP异常详解

    PHP的异常是什么 PHP 5 提供了一种新的面向对象的错误处理方法 异常处理用于在指定的错误 异常 情况发生时改变脚本的正常流程 这种情况称为异常 一般使用方法 php this gt getMessage is not a valid
  • flex学习 ------- 复写treeItemrenderer 给树形菜单加复选框

    项目中菜单树 复选框的需求 以为像平常的list控件加个itemrender就可以搞定 谁知道不是那么回事 果断baidu 看到有大神写过 果断看tree的源码 发现 tree在构造函数中已经默认设置了一个itemrnederer 而且它的
  • 【PMSM控制】电流环带宽

    带宽的概念 可以理解为是频率 在自控的定义上来说 即是规定3dB衰减或有90 相移作为带宽的评价标准 因为控制系统的性能可以用动态响应和稳态误差来评判 为了便于评判系统性能 从频域来考虑 就是都给100Hz变化的正弦信号 看系统的失真情况
  • 使用computed_VUE中computed计算属性和data数据获取的问题

    获取到数据 对象 数组 截取一部分显示到页面中 用computed计算属性来实现截取数据然后直接输出到页面 div class detailBox h1 class detailHead ActiveData title h1 div cl
  • c语言检测使用方法,一种基于程序切片技术的C语言死代码检测方法与流程

    本发明涉及恶意代码分析领域 主要涉及一种基于程序切片技术的C语言死代码检测方法 背景技术 随着互联网的广泛普及 现今的计算机网络也面临着越来越多的攻击威胁 在众多网络安全问题中 恶意代码所造成的安全危害愈发严重 恶意代码分析成了安全人士关注
  • 机器学习西瓜书——第05章神经网络

    本文是关于周志华老师编写的机器学习书籍 西瓜书 的第五章神经网络 主要的内容有 M P神经元模型的构成 简单感知机和多层网络 以及著名BP算法的推导过程 激活函数是Sigmoid 文章目录 5 1 神经元模型 工作过程 激活函数 5 2 感
  • [Filco]蓝牙连接键盘

    第一次用蓝牙键盘 断连后的重连太痛苦了 蓝牙里搜不到键盘 搜到了PIN码不知道输入什么 不输入PIN码连接 Filco方法 控制面板 设备和打印机 点击 添加设备 搜索到 Filco 点击下一步 尝试从设备输入 对着数字敲 然后Enter就
  • Docker之Alpine制作镜像且上传至阿里云

    Alpine制作jdk镜像 alpine Linux简介 Alpine Linux是一个轻型Linux发行版 它不同于通常的Linux发行版 Alpine采用了musl libc 和 BusyBox以减少系统的体积和运行时的资源消耗 alp
  • 8位深, 16位深,24位深,32位深图片显示原理及对比

    我们都知道一张图片可以保存为很多种不同的格式 比如bmp png jpeg gif等等 这个是从文件格式的角度看 我们抛开文件格式 看图片本身 我们可以分为8位 16位 24位 32位等 单击右键 属性 gt 详细信息即可查看图片位深度 8
  • ijkplayer-android编译 兼容多视频格式

    用的播放器框架是ijkplayer 然后就去https github com Bilibili ijkplayer的issue里找答案发现很多人遇到了这个问题 最终还是想通过编译定制化so的方式解决 践行解决方案 按照官方文档编译andro
  • Mybatis-代码走查问题整理

    实践篇 1 和 的区别 直接替换变量 有sql注入风险 使用场景 当表名 字段名作为变量传入时 PreparedStatement 预处理编译 先替换为 然后赋值 添加单引号 2 使用注解和xml文件sql的方式区别 注解 简单明了 无需额
  • Doris之Binlog Load

    Binlog Load Binlog Load提供了一种使Doris增量同步用户在Mysql数据库的对数据更新操作的CDC Change Data Capture 功能 适用场景 INSERT UPDATE DELETE支持 过滤Query
  • Qt6教程之三(3) QtWedget自定义控件

    在之前的博客中 我们使用的控件都是Qt官方提供的 对于控件的特性也只能被动地接受 为了打破这种束缚 可以按照自己的想法来定义控件 不过自定义控件必须遵守Qt官方的一套自定义控件规则 在规则之下我们就可以定义属于我们自己的控件啦 QWidge
  • 输出比较实验

    转载链接 输出比较 输出比较就是通过定时器的外部引脚对外输出控制信号 输出比较的模式有哪些 可以设置为以下几种不同的模式 翻译如下 000 冻结 输出比较寄存器TIMx CCR1中的内容与计数器TIMx CNT中的内容之间的比较对输出无影响
  • jquery ajax 无效字符,【JQuery】 ajax 无效的JSON基元

    如题 个人理解就是 你向传数据 josn格式 了 但是后台接受确不是json格式的 数据 贴段代码 var strJson usercode 123 password 123 ajax type POST url Index doLogin
  • CentOS7下安装 mysql5.7.25(glibc版)(可用)

    一 安装前的检查 1 检查 linux 系统版本 root localhost cat etc system release 2 检查是否安装了 mysql mysql 有三种安装方式 二进制包安装 RPM包安装 源码装 3 系统内存检查
  • c++的cout输出

    1 c 的cout输出顺序是从左往右进行输出 但是是从右往左压入栈 2 c 的cout的输出是遇到函数是若函数内右cout的操作则立即执行 3 不同编译器对相同语句的编译规则是不一样的 所以最好不要对同一变量进行多次的修改 也不用深究 没有
  • go语言如何编译为可执行文件

    使用系统自带的cmd找到main函数所在位置 1 go build go即可把go程序编译成exe文件 2 go run go就可以运行go程序了 3 便宜源代码 官方说使用go build fileName 编译出来的就直接带有调试信息了
  • bash: ifconfig: 未找到命令 解决方案

    解决思路 1 ifconfig 命令存在的情况 首先查看 ifconfig 命令在哪个目录下 顺便检查是否安装了这个命令 whereis ifconfig 然后查看 echo PATH PATH 中是否包含了这个目录 一般情况下是不包含的
  • 前端开发都需要掌握那些技术?

    前端技术多且杂 那么作为前端开发者 我们可以从那些方面进行进阶提升呢 本文从以下几个方面进行了整理归纳 内容如下 一 网页开发 二 小程序 三 移动端 四 桌面端 五 其他技术 一 网页开发 这里指PC端网页开发 要求的技术主要有以下几类