抽一点时间整理下青训营笔记、相信课程笔记对于刚入门的伙伴会受益匪浅
我的小破站:gavinking.top
本次笔记围绕“前端要解决的基本问题”及“什么是 HTML ”两个基本问题展开。
笔记重点
- 前端工作的定义
- 前端技术栈拆解与分析
- HTML 作用解析、语义化
1. 前端工作的定义
负责构建用户在浏览器中直接与之交互的部分,即用户界面的开发。前端工作涵盖了网页的外观、布局、交互和性能优化等方面,旨在为用户提供良好的使用体验。
- 解决GUI人机交互问题
- 跨终端
- PC/移动浏览器
- 客户端/小程序
- VR/AR等
- Web技术栈
2. 前端技术栈拆解与分析
前端技术栈是指在前端开发中使用的一组技术、工具和框架的集合,用于构建用户界面、实现交互效果和优化性能。下面将结合前端技术栈简写拆解为几个关键部分,并进行分析:
- 基本技术:
- HTML(超文本标记语言): 用于定义网页的结构和内容,包括标题、段落、图像、链接等。
- CSS(层叠样式表): 用于定义网页的样式和布局,控制元素的颜色、字体、间距等外观属性。
- JavaScript:
- JavaScript(JS): 用于实现网页的交互效果和动态功能。可以操作DOM元素、处理用户输入、发送网络请求等。
- 前端框架和库:
- React: 由Facebook开发的JavaScript库,用于构建用户界面。使用组件化开发思想,实现虚拟DOM和单向数据流。
- Vue.js: 一套用于构建用户界面的渐进式框架,易于学习和集成,支持响应式数据绑定和组件化开发。
- Angular: 由Google开发的前端框架,提供强大的工具和特性,支持双向数据绑定和依赖注入。
- 状态管理:
- Redux(React中常用): 用于管理应用的状态,通过创建一个中央存储来存储和管理应用的数据。
- Vuex(Vue中常用): 用于管理应用的状态,集中管理和共享数据,实现组件间通信。
- 构建工具:
- Webpack: 用于构建和打包前端资源,包括JavaScript、CSS、图片等。支持模块化开发、代码分割、代码压缩等功能。
- Parcel: 轻量级的打包工具,可以自动处理资源的依赖关系,无需手动配置。
- 模块化:
- ES Modules: 原生的JavaScript模块化系统,允许将代码拆分为多个文件,并通过import和export语句进行模块导入和导出。
- CommonJS(Node.js中常用): 用于服务器端的模块化系统,通过require和module.exports语句进行模块导入和导出。
- 样式预处理器:
- Sass/SCSS: 一种CSS预处理器,提供了变量、嵌套、混合等功能,增强了CSS的可维护性。
- Less: 另一种CSS预处理器,类似于Sass,可以简化CSS编写过程。
- 自动化测试和工具:
- Jest(React中常用): 由Facebook开发的JavaScript测试框架,用于编写单元测试和集成测试。
- Vue Test Utils(Vue中常用): 用于编写Vue组件的单元测试。
- Cypress: 用于进行端到端的用户行为测试,模拟用户在浏览器中的交互行为。
- 包管理工具:
- npm(Node.js中常用): Node.js包管理工具,用于安装、管理和共享前端和后端的依赖包。
- Yarn: 另一种包管理工具,与npm类似,但具有更快的速度和一些额外的特性。
- 性能优化:
- 性能优化: 使用技术如懒加载、代码分割、压缩、图片优化等来提高应用性能和加载速度。
- PWA(Progressive Web App): 利用Web技术,使网页应用在移动设备上具有更接近原生应用的体验,包括离线访问、推送通知等功能。
这些技术和工具在前端开发中扮演了重要的角色,帮助开发者构建现代化、高性能的Web应用。前端技术栈的选择会根据项目需求、开发团队的偏好以及行业趋势来确定。
前端应该关注的方面?
- 功能->美观->无障碍->安全->性能->兼容->体验
前端的边界与开发环境?
node、ELECTRON、React Native、WebRTC 、WebGL、WEbASSEMBLY
3. HTML 作用解析、语义化?
HTML 语法
- 标签和属性不区分大小写,推荐小写
- 空标签可以不闭合,比如input、meta
- 属性值推荐用双引号包裹
- 某些属性值可以省略,比如required、readonly
语义化是什么?
- HTML中的元素、属性及属性值都拥有某些含义
- 开发者应该遵循语义来编写HTML
- 有序列表用ol;无序列表用ul
- lang属性表示内容所使用的语言
谁在使用我们写的HTML
- 开发者-修改、维护页面
- 浏览器-展示页面
- 搜索引擎-提取关键词、排序
- 屏幕阅读器-给盲人读页面内容
语义化的好处
- 代码可读性
- 可维护性
- 搜索引擎优化
- 提上无障碍性
传达内容而不是样式!!!
如何做到语义化?
- 了解每个标签和属性的含义
- 思考什么标签最合适描述这个内容
- 不使用可视化工具生成代码