从浏览器里输入URL构建你的前端知识体系

news2025/1/18 16:57:48

嗨!我是团子,好久不见~

记得22年寒假复习八股的时候,一直在苦恼怎样才能把八股的内容真正的转换为自己的知识。毕竟光靠死记硬背每个知识点,是不能在面试中给面试官留下不错的印象的。后面在整理《浏览器里输入URL后发生了什么》这道题时,发现可以通过这个题把自己的所有前端知识点给串起来,从而构建出自己的前端知识体系。所以,今天就从浏览器里输入URL和大家分享一下我是如何构建自己的前端知识体系的吧!

作为一个前端开发工程师,我们的日常工作就是和网页打交道。无论是PC端浏览器中的标签页,还是使用Electron构建出的桌面端应用,还是移动端的H5页面,它们的本质都是网页。

既然是网页,那么就离不开HTML、CSS和JS(俗称前端三件套)。前端三件套是构建出一个网页的最基本要素,也是最核心的要素

近些年来,随着webpack的横空出世,前端工程化约束着前端程序员的编程习惯,也使得前端编程变得更加规范。再加上ES6、ES7的普及,随之也出现了很多高效的“编程语言”,比如:vue、react、scss、sass、less、ts等等。但浏览器本身是无法识别.vue、.scss、.less、.ts这些文件的,它们最终都会被webpack等打包工具转换为HTML(内容)、CSS(样式)和JS(行为)从而呈现在页面上。



那这些网页是怎么呈现在页面上的呢?

回想一下,一个网页的呈现,往往是从浏览器里输入一个URL开始的。

浏览器篇

当我们在浏览器输入一个URL,再到网页呈现出来时,简单来说会经历如下几个过程:

image.png

1-5步都是计算机网络和http通信的相关知识点,汇总下来大致包含以下一些高频且必须掌握的内容:

image.png

到了第6步,才算是开始在浏览器端呈现页面!

浏览器端需要通过解析HTML、CSS和JS文件形成DOM(文本对象模型)和CSSOM(CSS对象模型),再由DOM和CSSOM形成渲染树,然后通过布局、绘制操作呈现出网页的内容。

这期间涉及到的高频考点有:

image.png

作为浏览器端的用户来说,服务器端返回给浏览器的文件内容,通常是前端工程师利用webpack或vite等工具打包后部署到服务器上的内容。

那作为前端开发工程师的我们,在本地开发环境下,是如何进行页面开发的呢?

项目开发篇

正如文前所述,随着前端工程化的深入人心,前端领域出现了很多高效的开发工具。目前主流的前端框架有React框架、Vue框架和Angular框架。Angular框架没接触过,React框架和Vue框架作为SPA(单页面应用)的典型,其提出的生命周期虚拟DOM思想使得页面的呈现过程变得细分化,在此期间我们可以做很多性能优化的工作来提高网页呈现效果。

但是仅仅使用React框架和Vue框架进行页面开发是完全不够的。如何在开发环境下调试页面;如何进行单页面应用中组件之间的跳转;如何在非父子组件之间进行通信;如何给元素添加样式等等都是我们需要考虑的问题。

通常来说,一个前端的项目结构中应该包含如下几部分内容:

image.png

以vue框架或react框架为主的项目在脚手架、路由、UI组件库等工具的使用上各有方案。但它们所实现的功能基本相似,只是用法上有所差别。这可能就是为什么前辈们常说,会一种框架,很快就可以上手其他框架的原因吧!

除此之外,考虑到不同的业务需求中有很多相似之处,比如不同的中后台管理系统,业界前端团队封装了开箱即用的企业级中后台前端/设计解决方案:Ant Design Pro。大家也可以参考使用Ant Design Pro搭建出的项目结构进行学习。

服务端篇

每一位前端开发工程师都有成长为全栈开发工程师的潜力。

实际上,在前端领域,也有实现服务端开发的方案:

image.png
egg、Koa、NestJS、Express.JS都是基于原生node封装的新框架,熟练掌握其中一些可以让我们对前端开发有更多更深刻的了解!

强烈推荐大家有时间读读Koa框架的源码,代码量只有几百行,但是设计思想很巧妙。如果能够吃透的话,在面试中也不失为一个加分项

扩展篇

除了上述一些常见的前端知识点。前端有趣的地方还有很多呢! 推荐大家在空闲时间继续扩充,不管是为了面试做准备,还是拓展知识面~

image.png

本文主要是构建前端知识体系,对于具体的概念没有很详细的列出,如果您觉得分享的知识点有可取之处,可以去官网等平台搜索对应的内容进行详细学习,后续也会分享一些具体&有意思的技术给大家!

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

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

相关文章

Stellarium 1.2 正式发布

导读Stellarium 1.2 已发布。Stellarium 是一款免费开源 GPL(自由软件基金会 GNU 通用公共许可证)软件,它使用 OpenGL 图形接口对星空进行实时渲染。 软件可以模拟肉眼、双筒望远镜和小型天文等观察天空,根据观测者所处时间和位置…

项目管理:项目经理如何创建项目日程计划表

当项目经理接手项目后,要做好项目的日程安排,这是决定项目是否成功完成的最重要任务之一。 项目经理都希望项目按照制定好的进度计划完工,但在实际的情况中,总会有那么一两个项目会出现进度延迟的情况,管理者可以使用…

忆享科技戟星安全实验室|OSS的STS模式授权案例

戟星安全实验室忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等。本文约957字,阅读约需3分钟。前言《漏洞挖掘系列》将作为一个期刊持续更新,我们会将项目中所遇到的觉得有…

图像编辑Photoshop 2023中文新

Photoshop2023从照片编辑和合成到数字绘画、动画和图形设计-只要能想到,就能在Photoshop中创作出来。相信大家都有在用之前的版本,这款软件功能丰富,实用性很强,有着大量的功能用户都可以用上,不管是美化还是滤镜&…

基于冲突搜索(CBS)的多智能体路径寻优(MAPF)

1 背景 1.1 问题描述 多智能体路径寻优( Multi-Agent Path Finding,MAPF )问题由一个无向无权图G ( V ,E )和一组k个智能体组成,其中智能体有起始点和目标点。时间被离散化为时间步。在连续的时间步之间,每个智能体既可以移动到…

Kafka生产者——消息发送流程,同步、异步发送API

生产者消息发送流程 发送原理 Kafka的Producer发送消息采用的是异步发送的方式。 在消息发送的过程中,涉及到了两个线程:main线程和Sender线程,以及一个线程共享变量:RecordAccumulator。 ①main线程中创建了一个双端队列RecordAccumulator&#xff0c…

Spring Boot 创建和使用

Spring Boot 创建和使用一、什么是 Spring Boot二、Spring Boot 优点三、Spring Boot 项目创建3.1 使用 Idea 创建验证3.2 网页版创建四、项目目录介绍五、约定大于配置 (重要)5.1 启动类5.2 自定义类在目录中的位置一、什么是 Spring Boot Spring 的诞⽣是为了简化 Java 程序…

《架构300讲》学习笔记(51-100)

前言 内容来自B站IT老齐架构300讲内容。 053动静分离 静态数据:无个性化的数据,静态文件,低频变动的数据。 动态数据:个性化推荐,高频写。 有效的区分页面中的动静数据是优化的关键前提。 页面伪静态化技术&#x…

【Leetcode】308. 二维区域和检索 - 可变

一、题目 1、题目描述 给你一个 2D 矩阵 matrix,请计算出从左上角 (row1, col1) 到右下角 (row2, col2) 组成的矩形中所有元素的和。 实现 NumMatrix 类: NumMatrix(int[][] matrix) 用整数矩阵 matrix 初始化对象。void update(int row, int col, i…

OpenCv相机标定——圆形标定板标定

提取角点时与黑白棋盘格差别主要在于寻找角点的函数,只需将第一章内第二段代码 ret, corners1 cv.findChessboardCorners(img_gray, (w, h)) # 寻找内角点改为 ret, corners1 cv.findCirclesGrid(img_gray, (w, h)) # 寻找内角点,更详细的内容参考第一…

盘点| 能够实现小程序开发提效的框架/工具有这些

近年来,为了研发效率的提升,技术高频革新,开发者们纷纷表示:“好是好,就是快学不动了!”。开发者们在不断学习新语言、框架、工具等内容的同时,也在担心所学是否真正有用。而小程序其实能够帮助…

9、Javaweb_http响应概念Response+验证码案例ServletContext+文件下载

HTTP协议: 1. 请求消息:客户端发送给服务器端的数据 * 数据格式: 1. 请求行 2. 请求头 3. 请求空行 4. 请求体 2. 响应消息:服务器端发送给客户端的数据 * 数据格式: …

Nginx 常用配置、操作详解

学习每个技术都要有目标,比如说要源码精通gRPC实现原理,要熟练应用Prometheus、Gin,以及Nginx,Nginx个人定位目标是不需要深入了解技术原理、更不要阅读源码,只需要在自己使用的时候能通过本文章快速检索就够了。 在看…

Graphing calculator PRO

Graphing calculator PRO计算器是一个专业的计算器,它也是编译的,也是学生和学生需要的工具。该程序旨在取代大型和昂贵的图形计算。此外,它在手机或广告牌显示屏上以更高的质量显示计算,这使其更易于理解。Mathlab提供的计算器是…

【云原生进阶之容器】第三章List-Watch机制3.1节-- List-Watch机制剖析

1 list-watch机制 1.1 list-watch介绍 Kubernetes 是通过 List-Watch 的机制进行每个组件的协作,保持数据同步的,每个组件之间的设计实现了解耦。 用户是通过 kubectl 根据配置文件,向 APIServer 发送命令,在 Node 节点上面建立 Pod 和 Container。 APIServer 经过 API 调…

回收租赁商城系统功能拆解06讲-商品评价

回收租赁系统适用于物品回收、物品租赁、二手买卖交易等三大场景。 可以快速帮助企业搭建类似闲鱼回收/爱回收/爱租机/人人租等回收租赁商城。 回收租赁系统支持智能评估回收价格,后台调整最终回收价,用户同意回收后系统即刻放款,用户微信零…

Ubuntu20.04 (ROS noetic) 运行 Vins-Fusion

参考博客:Ubuntu20.04 运行 Vins-Fusion,问题没有完全解决,所以自己写了一篇Vins-Fusion 开源地址:https://github.com/HKUST-Aerial-Robotics/VINS-Fusion由于仅支持ROS kinetic 和 melodic,所以在Ubuntu20.04对应的R…

【Nginx】Nginx的安装

1. 基于apt源安装 1.1 安装1.2 测试安装是否成功1.3 卸载 1. 停止nginx服务2. 删除nginx,-purge包括配置文件3. 移除全部不使用的软件包4. 罗列出与nginx相关的软件并删除5. 查看nginx正在运行的进程,如果有就kill掉 2. 通过源码包编译安装 1. 安装各种…

Java 开源开发平台 O2OA V7.3 发布,新增带权限的全文检索等重要功能

O2OA 自产品发布以来,我们收到了很多伙伴对产品的宝贵建议和意见,在 2022 年的最后一个版本里,我们为伙伴们又提供了新的能力,v7.3 版本正式发布,对平台做了更多的优化。一、平台架构新增带权限的全文检索协同办公领域…

MATLAB-拉格朗日插值运算

在结点上给出结点基函数,接着做该基函数的线性组合,组合的系数为结点的函数值,这种插值多项式称为拉格朗日插值公式。通俗地说,就是通过平面上的两个点确定一条直线。该插值方法是一种较为基础的方法,同时该方法也较容易理解与实现…