news 2026/4/27 7:28:35

前端技术知识点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
前端技术知识点

阶段一:基础前端知识

1. HTML/CSS/JavaScript基础

HTML5常用语义化标签:

<article>

标签定义独立的内容。 标签定义的内容本身必须是有意义的且必须是独立于文档的其余部分。

<html> <head> <meta charset="utf-8"> <title>演示</title> </head> <body> <article> <h1>Internet Explorer 9</h1> <p> Windows Internet Explorer 9(缩写为 IE9 )在2011年3月14日21:00 发布。</p> </article> </body> </html>

<header>

标签定义文档或者文档的一部分区域的页眉。

<header> 元素应该作为介绍内容或者导航链接栏的容器。

在一个文档中,您可以定义多个 <header> 元素。

注释:<header> 标签不能被放在 <footer>、<address> 或者另一个 <header> 元素内部。

<article> <header> <h1>Internet Explorer 9</h1> <p><time pubdate datetime="2011-03-15"></time></p> </header> <p> Windows Internet Explorer 9(缩写为 IE9 )是在2011年3月14日21:00发布的</p> </article>

<nav>

标签定义导航链接的部分。

并不是所有的 HTML 文档都要使用到 <nav> 元素。<nav> 元素只是作为标注一个导航链接的区域。

在不同设备上(手机或者PC)可以制定导航链接是否显示,以适应不同屏幕的需求。

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>练习</title> </head> <body> <nav> <a href="/html/">HTML</a> | <a href="/css/">CSS</a> | <a href="/js/">JavaScript</a> | <a href="/jquery/">jQuery</a> </nav> </body> </html>
<main>

标签用于指定文档的主体内容。

<main> 标签中的内容在文档中是唯一的。它不应包含在文档中重复出现的内容,比如侧栏、导航栏、版权信息、站点标志或搜索表单。

注意在一个文档中,<main> 元素是唯一的,所以不能出现一个以上的 <main> 元素。<main> 元素不能是以下元素的后代:<article>、<aside>、<footer>、<header> 或 <nav>。

<!DOCTYPE html> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>练习</title> </head> <body> <main> <h1>Web 浏览器</h1> <p>Google Chrome、Firefox 以及 Internet Explorer 是目前最流行的浏览器。</p> <article> <h1>Google Chrome 浏览器</h1> <p>Google Chrome 浏览器是由 Google 开发的一款免费的开源 web 浏览器,于 2008 年发布。</p> </article> <article> <h1>Internet Explorer 浏览器</h1> <p>Internet Explorer 浏览器由微软开发的一款免费的 web 浏览器,发布于 1995 年。</p> </article> <article> <h1>Mozilla Firefox 浏览器</h1> <p>Firefox 浏览器是一款来自 Mozilla 的免费开源 web 浏览器,发布于 2004 年。</p> </article> </main> </body> </html>
<section>

标签定义了文档的某个区域。比如章节、头部、底部或者文档的其他区域。

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>练习</title> </head> <body> <section> <h1>WWF</h1> <p>The World Wide Fund for Nature (WWF) is an international organization working on issues regarding the conservation, research and restoration of the environment, formerly named the World Wildlife Fund. WWF was founded in 1961.</p> </section> <section> <h1>WWF's Panda symbol</h1> <p>The Panda has become the symbol of WWF. The well-known panda logo of WWF originated from a panda named Chi Chi that was transferred from the Beijing Zoo to the London Zoo in the same year of the establishment of WWF.</p> </section> </body> </html>

`<aside>`,

`<footer>`

标签的正确使用场景

HTML5新特性:`<video>`, `<audio>`, `<canvas>`, `<svg>`, `<progress>`, `<meter>`

表单新特性:`placeholder`, `required`, `pattern`, `autocomplete`

CSS3特性

Flexbox布局: - `display: flex`及相关属性

容器属性:`flex-direction`, `flex-wrap`, `justify-content`, `align-items`, `align-content`

项目属性:`flex-grow`, `flex-shrink`, `flex-basis`, `order`, `align-self`

Grid布局:

`display: grid`及相关属性

网格定义:`grid-template-columns`, `grid-template-rows`, `grid-template-areas`

网格间隙:`grid-gap`

项目放置:`grid-column`, `grid-row`

CSS3选择器:属性选择器, 伪类选择器, 伪元素选择器

CSS3动画:`@keyframes`, `animation`属性

CSS3过渡:`transition`属性

CSS3变换:`transform`属性

媒体查询:`@media`

变量:`--variable`

JavaScript ES6+语法

变量声明:`let`, `const`

let 声明的变量只在 let 命令所在的代码块内有效。

const 声明一个只读的常量,一旦声明,常量的值就不能改变。

箭头函数:`() => {}`

模板字符串:`` `string ${variable}` ``

解构赋值:数组解构, 对象解构

扩展运算符:`...`

剩余参数:`function(...args)`

默认参数:`function(a = 1)`

增强的对象字面量:简写属性, 计算属性名, 方法简写

Promise:`new Promise()`, `then()`, `catch()`, `finally()`

async/await:异步函数

模块系统:`import`, `export`

类:`class`, `extends`, `super`

迭代器与生成器:`*`, `yield`

2. TypeScript基础

类型系统
- 基本类型:`number`, `string`, `boolean`, `null`, `undefined`, `symbol`, `bigint`
- 联合类型:`string | number`
- 交叉类型:`A & B`
- 类型断言:`as`, `<Type>`
- 类型守卫:`typeof`, `instanceof`, 自定义类型守卫
- 类型推断:TypeScript的自动类型推断
- 类型别名:`type`
- 接口:`interface`
- 泛型:`<T>`, 泛型约束, 泛型默认值
- 高级类型:
- 映射类型:`Record`, `Partial`, `Required`, `Pick`, `Omit`
- 条件类型:`T extends U ? X : Y`
- 工具类型:`ReturnType`, `Parameters`, `ConstructorParameters`
- 模块声明:`declare module`
- 命名空间:`namespace`

阶段二:Vue 3核心

1. Vue 3基础 组件基础

- 组件定义:`defineComponent`
- 组件注册:全局注册, 局部注册
- 组件通信:Props, Emits
- 组件生命周期:`onMounted`, `onUnmounted`, `onUpdated`, `onBeforeMount`, `onBeforeUpdate`, `onBeforeUnmount`
- 组件样式:`scoped`样式, 深度选择器

模板语法
- 插值:`{{ }}`
- 指令:`v-if`, `v-else`, `v-else-if`, `v-for`, `v-show`, `v-bind`, `v-on`, `v-model`, `v-slot`
- 计算属性:`computed`
- 侦听器:`watch`, `watchEffect`
- 过滤器:已废弃,使用计算属性替代

响应式系统
- `ref`:基本类型响应式
- `reactive`:对象类型响应式
- `readonly`:只读响应式
- `shallowRef`/`shallowReactive`:浅响应式
- `toRef`/`toRefs`:将响应式对象的属性转换为ref
- `isRef`/`isReactive`/`isReadonly`:响应式判断
- `unref`:获取ref的值
- 响应式原理:Proxy实现

生命周期钩子
- 选项式API生命周期:`beforeCreate`, `created`, `beforeMount`, `mounted`, `beforeUpdate`, `updated`, `beforeUnmount`, `unmounted`
- 组合式API生命周期:`onBeforeMount`, `onMounted`, `onBeforeUpdate`, `onUpdated`, `onBeforeUnmount`, `onUnmounted`, `onErrorCaptured`, `onRenderTracked`, `onRenderTriggered`

2. Vue 3进阶

组合式API
- `setup()`函数:组合式API的入口
- `ref`和`reactive`的使用
- `computed`和`watch`的使用
- `provide`/`inject`:依赖注入
- `readonly`:创建只读代理
- `watchEffect`:自动追踪依赖的副作用
- `computed`:计算属性
- `ref`和`reactive`的转换:`toRef`, `toRefs`, `unref`

自定义钩子
- 自定义钩子的定义:`useXxx`命名规范
- 钩子的复用:提取逻辑到自定义钩子
- 常见自定义钩子:`useCounter`, `useApi`, `useLocalStorage`等

组件通信
- Props/Emits:父子组件通信
- `provide`/`inject`:跨组件通信
- 事件总线:`mitt`库
- Pinia:全局状态管理
- 插槽:默认插槽, 具名插槽, 作用域插槽

插槽和动态组件
- 插槽:`v-slot`, `#default`, `#name`
- 作用域插槽:向插槽传递数据
- 动态组件:`component :is`
- 异步组件:`defineAsyncComponent`

阶段三:生态系统

1. Vue Router

路由配置
- 路由定义:`createRouter`, `createWebHistory`
- 路由配置:`path`, `name`, `component`, `props`
- 嵌套路由:`children`
- 动态路由:`path: '/user/:id'`
- 路由别名:`alias`
- 路由重定向:`redirect`

导航守卫
- 全局守卫:`beforeEach`, `beforeResolve`, `afterEach`
- 路由守卫:`beforeEnter`
- 组件守卫:`beforeRouteEnter`, `beforeRouteUpdate`, `beforeRouteLeave`
- 守卫的参数和next函数

路由懒加载
- 动态导入:`() => import('@/views/Page.vue')`
- 路由分块:webpackChunkName
- 预加载:`router.preload()`

2. Pinia

状态管理
- Store定义:`defineStore`
- State:状态定义和访问
- Getters:计算属性
- Actions:异步操作
- 模块化:多个Store

Store设计
- 单一状态树:集中管理状态
- 模块化:按功能划分Store
- 命名规范:`useXxxStore`
- 状态持久化:localStorage

模块化
- 模块拆分:按业务逻辑拆分
- 模块组合:跨模块访问
- 模块命名空间:避免命名冲突

3. Element Plus

组件使用
- 基础组件:Button, Input, Select, Radio, Checkbox
- 容器组件:Container, Header, Aside, Main, Footer
- 表单组件:Form, FormItem, Input, Select, DatePicker
- 表格组件:Table, TableColumn, Pagination
- 对话框组件:Dialog, MessageBox, Message
- 导航组件:Menu, Tabs, Breadcrumb
- 数据展示:Card, Badge, Avatar, Tag
- 其他组件:Upload, Tree, Carousel, Collapse

表单验证
- 内置验证规则:`required`, `email`, `url`, `number`
- 自定义验证规则:`validator`
- 表单验证触发:`blur`, `change`, `submit`
- 表单验证方法:`validate`, `resetFields`

#### 主题定制
- 主题变量:`--el-color-primary`, `--el-color-success`等
- 主题配置:`element-plus/dist/index.css`
- 按需引入:`unplugin-vue-components`
- 自定义主题:通过SCSS变量覆盖

阶段四:网络和构建

1. Axios

#### 基础请求
- `axios.get()`:GET请求
- `axios.post()`:POST请求
- `axios.put()`:PUT请求
- `axios.delete()`:DELETE请求
- 请求参数:`params`, `data`
- 请求头:`headers`

#### 拦截器
- 请求拦截器:`axios.interceptors.request.use()`
- 响应拦截器:`axios.interceptors.response.use()`
- 拦截器的应用:添加认证信息, 统一错误处理

#### 错误处理
- 错误捕获:`try/catch`, `catch()`
- 错误类型:网络错误, 服务器错误, 业务错误
- 错误处理策略:重试机制, 错误提示

2. Vite

#### 项目搭建
- 初始化项目:`npm create vite@latest`
- 项目结构:`src`, `public`, `index.html`
- 配置文件:`vite.config.js`
- 开发服务器:`npm run dev`

#### 配置优化
- 别名配置:`resolve.alias`
- 插件配置:`plugins`
- 构建配置:`build`
- 开发服务器配置:`server`
- 环境变量:`.env`文件

#### 构建部署
- 构建命令:`npm run build`
- 构建产物:`dist`目录
- 静态资源处理:`public`目录
- 部署策略:CDN, 服务器部署

阶段五:实战项目

1. 项目结构

- 目录结构:`src/api`, `src/components`, `src/views`, `src/router`, `src/store`
- 命名规范:组件名, 文件名, 变量名
- 代码风格:ESLint, Prettier
- 模块化:按功能划分模块

2. API集成

- API封装:统一API调用方法
- 接口文档:Swagger, Postman
- 数据模型:TypeScript接口定义
- 错误处理:统一错误处理
- 认证授权:Token管理

3. 性能优化

- 代码分割:动态导入
- 懒加载:图片懒加载, 组件懒加载
- 缓存策略:浏览器缓存, 本地存储
- 首屏优化:SSR, 预渲染
- 网络优化:HTTP/2, CDN

4. 测试

- 单元测试:Jest, Vitest
- 组件测试:Vue Test Utils
- 端到端测试:Cypress, Playwright
- 测试覆盖率:`coverage`
- 测试策略:TDD, BDD

学习建议

1. **系统性学习**:按照上述知识点顺序,系统学习每个技术点
2. **实践为主**:每学习一个知识点,立即动手实践
3. **项目驱动**:通过实际项目巩固所学知识
4. **代码阅读**:分析优秀开源项目的代码结构
5. **调试技巧**:学习使用浏览器开发者工具
6. **文档查阅**:养成查阅官方文档的习惯
7. **社区参与**:加入技术社区,交流学习经验
8. **持续更新**:关注前端技术的最新发展

通过系统性学习这些知识点,你将能够掌握现代前端开发的核心技能,为成为一名优秀的前端开发者打下坚实的基础。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/27 7:23:43

GitHub中文界面插件完整指南:一键实现全平台中文化

GitHub中文界面插件完整指南&#xff1a;一键实现全平台中文化 【免费下载链接】github-chinese GitHub 汉化插件&#xff0c;GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese GitHub中文界面插件是一…

作者头像 李华
网站建设 2026/4/11 10:08:26

电子实验记录本ELN评测与选型指南:医药/材料研发ELN厂商推荐

摘要在研发驱动增长的时代&#xff0c;电子实验记录本&#xff08;ELN&#xff09;已进化为集实验设计、数据采集、项目协同、合规审计及AI赋能于一体的核心研发基础设施。对于化学、医药、材料等领域的决策者而言&#xff0c;ELN的选型直接关系到研发效率、数据资产价值与合规…

作者头像 李华
网站建设 2026/4/11 10:07:25

7-Zip加密文件保姆级教程:从设置密码到安全分享(附常见问题解答)

7-Zip文件加密全流程实战指南&#xff1a;密码设置、安全分享与疑难排错 在数字化时代&#xff0c;文件安全已成为每个人都需要掌握的基本技能。无论是保护商业机密、个人隐私照片&#xff0c;还是简单的财务记录&#xff0c;加密都是防止敏感信息泄露的第一道防线。作为一款开…

作者头像 李华
网站建设 2026/4/11 10:07:23

Spring Boot + Redis BitMap:高性能签到系统实战

一、为什么签到系统值得认真设计 “签到”看似只是一个简单按钮,真正落到业务中,通常会同时承载以下目标: • 提升 DAU 与留存 • 驱动积分、经验值、优惠券等激励发放 • 支撑连续签到、补签、签到日历、月度活动等玩法 • 与消息推送、任务中心、会员体系联动 一旦用…

作者头像 李华
网站建设 2026/4/11 10:07:01

sa-token学习(2)

官方文档地址&#xff1a;sa-token sa-token学习(1) cookie & session & localStorage & sessionStorage session共享原理 文章目录 单点登录单点登录的3种模式SSO模式一 共享Cookie同步会话SSO模式二 URL重定向传播会话SSO模式三 Http请求获取会话 单点登录 单…

作者头像 李华
网站建设 2026/4/11 10:04:23

VSCode + Pixel Script Temple:Codex式代码辅助图像生成工作流

VSCode Pixel Script Temple&#xff1a;Codex式代码辅助图像生成工作流 1. 引言&#xff1a;当代码编辑遇上AI图像生成 想象一下这样的场景&#xff1a;你在VSCode里写代码时&#xff0c;突然需要一张插图来辅助说明某个概念。传统做法是打开设计软件手动制作&#xff0c;或…

作者头像 李华