HTML5 & CSS3

HTML

HTML基础语法 | 排版标签 | 路径 | 多媒体标签 | 链接标签 | 列表标签 | 表格标签 | 表单标签 | 布局标签 | 语义化标签 | 字符实体 | SEO 基础的优化(logo 优化)

知识点 笔记地址

基础语法

排版标签

路径

多媒体标签

链接标签

列表标签

表格标签

表单标签

布局标签

语义化标签

字符实体

SEO 基础的优化 (logo 优化)

CSS

选择器 | 外观 | 文字 | 背景 | 标准流 | 三大特性 | 盒模型 | 伪元素 | 浮动 | 伪类 | 定位 | 圆角 | 阴影 | 透明 | 过渡 | 显示 | 网格布局 | 弹性布局(圣杯布局,双飞翼布局,品字布局)

选择器

外观

文字

背景

标准流

三大特性

盒模型

伪元素

浮动

伪类

定位

圆角

阴影

透明

过渡

显示

网格布局

弹性布局(圣杯布局,双飞翼布局,品字布局)

移动 Web

CSS高级特效

字体图标|2D转换|3D转换|动画

字体图标

2D 转换

3D 转换

动画

移动适配

rem | vw/vh|Flex布局模型|Less基础语法|视口|分辨率|二倍图|移动适配|媒体查询

rem

vw/vh

Flex布局模型

Less基础语法

视口

分辨率

二倍图

移动适配

媒体查询

响应式

媒体查询| bootstrap框架|栅格系统|组件|响应式网页布局

媒体查询

bootstrap框架

栅格系统

组件

响应式网页布局

JavaScript

JavaScript 基础

变量 | 基本数据类型 | 数据类型的转换 | 运算符 | if分支 | switch分支 | 三元表达式 | while循环 | for循环 | 数组 | 函数 | 对象 | 内置对象 | let / const | 字面量

变量

基本数据类型

数据类型的转换

运算符

if分支

switch分支

三元表达式

while循环

for循环

数组

函数

对象

内置对象

let / const

字面量

WebAPI

DOM

DOM树 | DOM对象 | 获取元素 | innerHTML | style | className | classList | 间歇函数 | 延迟函数 | 事件监听 | 鼠标事件 | 键盘事件 | 高阶函数 | 环境对象 | 节点操作 | 事件流 | 事件委托 | 元素位置

DOM 树

DOM 对象

获取元素

innerHTML

style

className

classList

间歇函数

延迟函数

事件监听

鼠标事件

键盘事件

高阶函数

环境对象

节点操作

事件流

事件委托

元素位置

BOM

BOM | window对象 | swiper插件 | 本地存储 | 自定义属性 | 正则表达式

BOM

window对象

swiper插件

本地存储

自定义属性

正则表达式

JavaScript高级

构造函数 | 单体对象 | 面向对象 / 原型/原型链 | 解构 | 剩余 | 展开 | 箭头函数 | Object | Array | 严格模式 | 闭包 | 继承 | 防抖 | 节流 | 异常处理 | 深浅拷贝 | JS 阻塞 | 懒加载 | 作用域/作用域链 | 异步/事件循环机制 | ES6~ES12 |

知识点 Description

构造函数

单体对象

面向对象 / 原型 / 原型链

解构

剩余

展开

箭头函数

Object

Array

严格模式

闭包

继承

防抖

节流

异常处理

深浅拷贝

JS 阻塞

懒加载

作用域 / 作用域链

异步 / 事件循环机制

ES6~ES12

底层原理实现

自定义 promise

自定义 axios

自定义 PubSub

自定义 EventBus

自定义 React、Vue 脚手架

自定义实现 lodash 方法

Ajax

  • 利用 axios 发起 Ajax 请求,实现前后端的数据交互。了解 HTTP 请求的过程以及 Ajax 的底层原理。
  • 深入学习 JS 异步的底层原理,能够使用 Promise 处理异步操作,并使用 async/await 简化异步操作。

客户端与服务器 | axios | 请求与响应报文 | 接口 | form 表单 | 拦截器 | FormData | 文件上传 | XMLHttpRequest | Promise | async / await | EventLoop | 宏任务 / 微任务

客户端与服务器

axios

请求与响应报文

接口

form 表单

拦截器

FormData

文件上传

XMLHttpRequest

Promise

async / await

EventLoop

宏任务 / 微任务

Web 安全

HTTPS

内容安全策略(CSP)

跨域资源共享

OWASP 安全风险

Git

  • 能够创建 Git 仓库管理项目,基于 Git 分支进行多人协同开发

安装和配置 Git | Git 本地操作的常用命令 | .gitignore 忽略文件 | Git 分支与常用命令 | 远程仓库的使用

安装和配置 Git

Git 本地操作的常用命令

.gitignore 忽略文件

Git 分支与常用命令

远程仓库的使用

Vue (Vue2 + Vue3)

预备阶段

  • 掌握模块化思想,npm包管理,webpack基础,初探工程化开发。

Node.js安装 | fs模块 | path模块 | http模块 | npm | 包配置文件 | npm常用命令 | 模块化概念 | CommonJS | ES6Module | 工程化开发概念 | webpack基础配置 | dev-server | webpack插件 | 常用loader | babel

Node.js安装

fs模块

path模块

http模块

npm

包配置文件

npm常用命令

模块化概念

CommonJS

ES6Module

工程化开发概念

webpack基础配置

dev-server

webpack插件

常用loader

babel

Vue 核心技术

MVVM | SPA | Vue 调试工具 | 虚拟DOM | diff算法 | 指令系统 | v-model原理 | 数据选项 | 生命周期 | 样式穿透 | 动态样式 | 插槽 | 组件系统 | 组件通信 | 自定义指令 | ref | 动态组件 | $nextTick | 自定义事件 | 计算属性 | 侦听器 | 组件库 | 组件封装 | keep-alive | 路由系统 | 导航守卫 | vue-cli | vuex | vant | element-ui | 路由懒加载

MVVM

SPA

Vue 调试工具

虚拟DOM

diff算法

指令系统

v-model原理

数据选项

生命周期

样式穿透

动态样式

插槽

组件系统

组件通信

自定义指令

ref

动态组件

$ nextTick

自定义事件

计算属性

侦听器

组件库

组件封装

keep-alive

路由系统

导航守卫

vue-cli

vuex

vant

element-ui

路由懒加载

Vue3.0 (Vue3 + TypeScript)

  • 掌握Vue3新特性、Vite、组合 API、Pinia …

Vite | 选项API | 组合API | setup | 生命周期 | reactive | toRef | toRefs | computed | 组件通信 | 依赖注入 | ref边界 | Pinia

Vite

选项API

组合API

setup

生命周期

reactive

toRef

toRefs

computed

组件通信

依赖注入

ref 边界

Pinia

TypeScript

  • 掌握TypeScript基础语法,并且在Vue3项目中熟练运用TypeScript

基础类型|联合类型|字面量类型|类型推断 | 类型断言 | 泛型 | 类型声明 | ts结合composition-api | ts结合axios | 头条案例

基础类型

联合类型

字面量类型

类型推断

类型断言

泛型

类型声明

ts 结合 composition-api

ts 结合 axios

头条案例

小程序

原生小程序

账号申请 | 开发工具 | 工程目录 | 项目配置 | 屏幕适配 | 资源托管 | 字体图标 | 数据绑定 | 事件处理 | 生命周期 | 场景值 | 模块化 | 网络请求 | 路由 | WXS | 模板 | 组件 | UI 框架 | 表单 | Promise

账号申请

开发工具

工程目录

项目配置

屏幕适配

资源托管

字体图标

数据绑定

事件处理

生命周期

场景值

模块化

网络请求

路由

WXS

模板

组件

UI 框架

表单

Promise

uni-app

脚手架 | 项目配置 | 单文件组件 | 生命周期 | 条件编译 | 计算属性 | 跨平台支持 | less | sass | 组件通信

脚手架

项目配置

单文件组件

生命周期

条件编译

计算属性

跨平台支持

less

sass

组件通信

电商项目

客户消息 | 微信支付 | 微信地址 | 小程序转发 | 区域滚动 | 上拉加载 | 下拉刷新 | 数据缓存 | 用户信息 | 自定义组件 | 微信登录 | 意见反馈 | 上线发布

客户消息

微信支付

微信地址

小程序转发

区域滚动

上拉加载

下拉刷新

数据缓存

用户信息

自定义组件

微信登录

意见反馈

上线发步

React

React核心

JSX | 组件系统 | 虚拟 DOM | 生命周期 | 无状态组件 | 有状态组件 | ref | class | 组件通信 | create-react-app | 路由 | 插值 | state

Hooks

useState | useEffect | useRef | useContext | useEffect高级用法 | 放大镜案例 | 购物车案例

Redux中间件

状态管理流程 | action | dispatch | store | reducer | redux-thunk中间件 | combineReducers | react-redux | Redux Toolkit |开发调试工具 | 点餐案例

TypeScript

ts 结合 hooks | ts 结合 redux | ts 结合 路由 | 点餐案例重构

数据可视化

canvas

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Tutorial

svg

参考文档:https://www.runoob.com/svg/svg-tutorial.html

echarts

参考文档:https://echarts.apache.org/zh/index.html

项目

Github ProJect

50 Projects in 50 Days - HTML/CSS and JavaScript: https://github.com/bradtraversy/50projects50days

购物车案例(Vue2)

项目地址:https://github.com/HaloBoys/ShopCar_Vue2.X

Todo 项目(Vue2)

项目地址:https://github.com/HaloBoys/TodoList_Vue2.X

尚品汇(Vue2)

项目地址:https://github.com/HaloBoys/ShangPinHui_Vue2.X

尚品汇后台管理(Vue2)

项目地址:https://github.com/HaloBoys/ShangPinHui_Vue2.X_Manage

小兔鲜儿电商项目首页制作

精灵图 | 文档编码 | 性能优化 | 布局技巧 | SEO | 性能优化 | 版心 | 设计稿 | PxCook

小兔鲜电商小程序项目

  • 小程序无需安装,用完即走的应用方式越来越受到用户的欢迎,企业也都纷纷开展了小程序的开发。
  • 小兔鲜儿是一个经典的电商类小程序项目,包括商品、用户、购物车、订单等核心功能模块,采用 uni-app 框架做为跨平台小程序开发方案,并综合运用了原生小程序的组件化、模块化、网络请求、本地存储、微信登录、微信支付等技术

学习目标

  1. 能够开发跨平台的小程序
  2. 能够独立开发小程序项目
  3. 掌握微信登录的实现方式
  4. 掌握微信支付的实现方式

解决方案

  1. 小程序跨平台开发解决方案
  2. 小程序微信登录实现方案
  3. 小程序微信支付实现方案
  4. 下拉刷新/上拉加载交互实现方案
  5. 数据缓存实现方案

知识点

  1. uni-app跨平台开发框架
  2. 组件封装及通信
  3. 微信支付/登录
  4. pinia 状态管理
  5. 基于vue3+ts技术实践方案
  6. 小程序云开发
  7. vant组件库

数据看板项目

  • 数据看板是一个数据可视化项目,通过折线图、K线图、柱状图等图表形式归纳汇总大量数据,以实现更加直观的数据表达效果。

学习目标

  1. 掌握Echarts 各类型数据可视化图表的应用
  2. 能够根据需要求创建折线图、K线图、地图等图表
  3. 掌握前后端分离技术的实现方式并了解其意义
  4. 掌握使用token进行访问鉴权功能实现

解决方案

  1. 基于 bootstrap 的响应式页面布局方案
  2. 基于 echarts 的数据可视化解决方案
  3. 基于 token 的访问权限控制解决方案

知识点

  1. 基于axios 实现网站注册和登录功能
  2. 基于 Echarts 结合需求高度自定义不同类型的可视化图表
  3. Ajax、数据渲染和服务端推送前后端分离技术的应用
  4. 基于 token 的访问权限控制功能

面经全端项目

  • 面经系统,由面试经验文章PC管理后台,个人H5端面试文章浏览组成。能够锻炼对 Vue 完整技术栈的运用。同时该项目还涵盖了 token 身份认证、Vue 组件库、文件上传、富文本编辑器等前端技术解决方案,移动端开发,适合刚入手 Vue 框架、希望通过项目开发来巩固 Vue 基础的前端开发者学习。

学习目标

  1. 掌握 element-ui 组件库的运用
  2. 掌握 axios 以及拦截器的应用
  3. 掌握 Vuex 管理全局状态的技术解决方案
  4. 熟练使用 vue-router 管理组件的切换展示
  5. 掌握 element-ui 中如何自定义表单的校验规则
  6. 掌握文件上传和富文本编辑器在 Vue 项目中的应用
  7. 掌握 Vant 组件库的运用
  8. 掌握使用 postcss-px-to-viewport 实现移动端适配

解决方案

  1. token身份认证解决方案
  2. 文件上传解决方案
  3. 富文本编辑解决方案
  4. 表单验证解决方案
  5. 基于vant的移动端界面构建方案
  6. 基于postcss-px-to-viewport移动端适配方案

知识点

  1. 基于 vue-cli 创建工程化的 Vue 项目
  2. 基于 element-ui 组件库快速实现项目布局
  3. 用户注册与登录的业务解决方案
  4. 使用 Vuex 管理全局共享的数据
  5. 使用 axios 实现前后端的数据交互
  6. 基于 vant 组件库快速构建移动端界面

iHRM人力资源项目

  • iHRM是一款基于SaaS平台的人力资源管理系统, 企业通过该系统可以完成公司组织架构管理、员工管理、角色管理、权限管理(审批、考勤、社保)等,为企业的人力资源管理提供一站式解决方案。

学习目标

  1. 掌握Vue + Element技术栈在开发管理型后台项目的技术开发能力
  2. 具备角色,人员,权限类系统的设计整体设计及应用能力
  3. 拥有Vuejs相关的技术要点及配套的插件,解决方案深度使用能力

解决方案

  1. 基于element-ui和vue2进行大型中台项目开发解决方案
  2. 基于axios封装请求工具模块解决方案
  3. 基于token的前端登录解决方案
  4. vuex分模块持久化解决方案
  5. RBAC大型中台项目权限控制解决方案
  6. excel批量导入导出解决方案
  7. 上传组件封装解决方案
  8. 多语言动态主题解决方案
  9. 树形结构处理解决方案

知识点

vue-element-admin(请求模块化,请求工具拦截,scss 样式,布局组件) | Vuex 持久化(state,mutations,actions,getters 和 modules) | Vue CLI 配置(webpack) | 反向代理 | ElementUI 表单校验(async-validator) | vue-router 导航守卫 | token 认证 | token 失效控制 | 角色管理业务 | RBAC 权限 | Vuex + 路由 + RBAC | 动态路由 | 角色权限 | 混入 mixns | 工作日历 | Echarts 雷达图 | 全屏(screenfull) | tabs 页多页签组件 | vue-i18n 国际化方案 | history 路由模式的应用 | 树形菜单 |element 列表的数据过滤 | 导入导出 Excel | Excel 复杂型表头 | PDF 打印(vue-print-nb)| el-upload 上传第三方云服务器 | 打包性能分析 | CDN 加速的实践应用 | 组件封装 | 业务组件封装

优医问诊项目

  • 优医问诊是一个连接医生和患者的移动医疗行业H5应用,通过高效、快速的在线问诊服务,为患者提供健康帮助,涵盖了找医生、快速问诊、开药门诊、疾病查询,健康健康百科等功能。
  • 该项目基于Vue3+TypeScript进行开发,且引入下一代状态管理工具 Pinia 和最热门的前端移动UI组件库 Vant ,采用全新技术栈

学习目标

  1. 掌握使用Vue3 + TypeScript 开发大型前端项目开发能力
  2. 掌握使用Vant组件库开发移动端项目能力
  3. 掌握 Pinia 状态管理工具实现项目状态管理
  4. 掌握 第三方登录和第三方支付 业务解决能力
  5. 掌握 快速问诊 等在线问诊主流业务开发能力

解决方案

  1. 基于vue3.0+typescript中大型项目开发解决方案
  2. 基于vant组件库快速构建H5界面解决方案
  3. 基于vue-router的前端路由解决方案
  4. 基于vite构建vue3.0项目解决方案
  5. 基于pinia的状态管理解决方案
  6. 基于pinia-plugin-persistedstate状态持久化解决方案
  7. 基于@vuecore/use的组合API工具库解决方案
  8. 基于id-validator的身份证信息校验解决方案
  9. 基于postcss-px-to-viewport移动端适配解决方案
  10. 基于vite-plugin-svg-icons的svg图标组件解决方案
  11. 基于tailwindcss的原子化类名现代解决方案
  12. 基于socket.io的即时通讯问诊室解决方案
  13. 基于eruda 的移动端调试解决方案
  14. 第三方登录解决方案
  15. 第三方支付解决方案

知识点

vue3.0框架| TypeScript使用 | vite前端构建工具|create-vue项目脚手架|vue-router路由|pinia状态管理|pinia-plugin-persistedstate状态持久化|sass预处理器| vite-plugin-svg-icons图标组件插件|tailwindcss现代CSS框架|@vueuse/core组合API工具库|dayjs日期处理|vant组件库 | postcss-px-to-viewport移动端适配 | id-validator校验身份证 | socket.io即时通讯 | eruda真机调试 | 第三方登录 | 第三方支付 | vant组件二次封装 | 通用组件封装 | reqeust工具函数 | 组件按需引入 | steup语法糖 | pnpm包管理 | 第三方库类型扩展 | 自定义composable | css变量

极客园H5项目

  • 「极客园」对标“CSDN”、“博客园”等竞品,致力成为更加贴近年轻 IT 从业者(学员)的科技资讯类应用。 本项目是极客园移动端,主要涵盖了H5端新闻资讯类项目的核心业务。
  • 包括首页文章列表上拉加载与刷新,频道管理,本地线上频道管理,文章搜索,文章评论与回复,组件缓存,token过期与刷新处理,用户权限拦截,个人信息修改解决方案。

学习目标

熟练掌握typescript + react技术栈 + antd-mobile组件库开发H5移动端新闻资讯类项目的技术能力。

解决方案

  1. 基于typescript开发中大型项目的解决方案
  2. 基于antd-design组件库移动端解决方案
  3. 基于react全家桶(react hooks + redux + react-router)移动端解决方案
  4. 基于axios封装请求工具类解决方案
  5. 基于token的前端登录解决方案,封装PrivateRouter拦截未登录用户
  6. 基于token实现token过期与token刷新处理
  7. 封装KeepAlive组件实现组件缓存的解决方案
  8. 基于antd-mobile实现文章列表的下拉刷新与上拉加载功能

知识点

react+hooks+redux+typescript+router全家桶 | 移动端项目搭建 | ant-mobile-v5 | vw 适配方案 | Token 过期处理 | 动态编辑 | 上拉加载 | 下拉刷新 | 评论与回复 | 搜索功能 | DayJS | 数据持久化 | 图片懒加载 | 组件定制 | 组件封装 | 性能优化 | 移动端1px像素 | Icon处理 | 表单验证 | 倒计时 | 拦截器 | 权限组件封装 | 缓存组件封装 | websocket | 防抖与节流 | 关键字高亮 | 吸顶组件 | keep-alive | CDN优化 |ahooks|lodash

极客园PC端项目

学习目标

熟练掌握 typescript + react技术栈(umi + dva + antd组件库 )开发后台管理项目的技术能力。

解决方案

  1. 基于react hooks实现后台管理系统的解决方案
  2. 基于ant-design组件库解决方案
  3. 基于react-router的前端路由解决方案
  4. 基于dva的状态管理解决方案
  5. 基于react-quill的富文本编辑器解决方案
  6. 基于 umi 的构建react项目解决方案

知识点

ant-design组件库 | 表单校验 | token 认证 | token 失效控制 | history 路由| 组件封装 | react-quill | umi | dva | ant-design-pro | useModal | umi-request

Todo

  • [x] 说一下vue生命周期
  • [x] 说一下组件通信
  • [ ] 说一下vuex
  • [ ] 说一下双向绑定的原理
  • [ ] 知道哪些 vue 指令
  • [ ] 说一下自定义指令
  • [ ] 说一下路由传参
  • [ ] 说一下防抖节流
  • [ ] 说一下this
  • [ ] 怎么阻止默认事件
  • [ ] 怎么阻止事件冒泡
  • [ ] 数组常用的方法
  • [ ] 数组去重知道哪些方法
  • [ ] 字符串操作方法
  • [ ] 怎么判断一个数是不是素数,逻辑怎么写?
  • [ ] 怎么清除浮动
  • [ ] div怎么垂直居中
  • [ ] 怎么画0.5px的线
  • [ ] 说一下盒模型
  • [x] 两个异步请求数据操作怎么合并
  • [ ] V-model是谁的语法糖
  • [ ] query和params区别
  • [ ] vue怎么获取dom
  • [ ] flex布局怎么把元素搞到右上角
  • [ ] promise有几种状态,会不会改变
  • [ ] async和await解决什么问题?
  • [ ] let和const区别
  • [ ] const定义对象里面的属性值能不能改?
  • [ ] 常见状态码
  • [ ] 对同步和异步的理解
  • [ ] 常见的宏任务,微任务?
  • [ ] 怎么判断两个数组相等?
  • [ ] es6遍历数组的方法?
  • [ ] 前端怎么给数据加密?
  • [ ] 两个html文件怎么传值?
  • [ ] vue3了解多少?
  • [ ] 数据结构了解哪些
  • [ ] 怎么查找两个数组的交集
  • [ ] 二叉树查找
  • [ ] 了解哪些网络安全知识
  • [ ] 对称加密和非对称加密哪个效率高
  • [ ] web木马了解吗
  • [ ] 用户输入url会发生什么
  • [ ] flex布局元素怎么放右下角
  • [ ] js的设计模式?
  • [ ] var let const区别
  • [ ] 遍历数组的方法,哪个可以跳出循环,哪个效率最高
  • [ ] promise捕获错误的方式
  • [ ] 异步任务有哪些
  • [ ] vue兼容到ie几
  • [ ] 组件通信
  • [ ] 生命周期父子组件执行顺序
  • [ ] 过滤器有没有用过
  • [ ] 用第三方库报错怎么办
  • [ ] 点击高亮的选项卡怎么实现
  • [ ] 图标跟随鼠标移动怎么实现
  • [ ] 50+ Vue经典面试题源码级详解 https://juejin.cn/post/7097067108663558151#heading-31