44

生日之际,记录自己前端拼搏之路~

 4 years ago
source link: https://juejin.im/post/5cfbcb5951882568862d69f0
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

时间过得真快!!!

        生日之际,从大学到现在,自己学习并实践过认为比较有用的技术点,也是常见面试考点...

将来的你一定会感谢自己拼命努力的自己

加油💪

前端学习记录

Html5

  • 对WEB标准以及W3C的理解与认识
  • Html5新特性与语义化
  • 行内元素与块级元素
  • 渐进增强与优雅降级的理解及区别
  • cookie、sessionStorage、localStorage原理与区别
  • CSS盒模型
  • 获取盒子宽高的几种方式及区别
  • Flex与Grid布局
  • CSS常见选择器
  • 浮动与定位
  • 常见的页面布局
  • CSS3新特性
  • 移动端视口配置
  • 文字、盒子水平垂直居中
  • CSS3画三角形、六边形等
  • link和@import有什么区别
  • 常见兼容性问题

jQuery

  • jQuery的好处
  • jQuery选择器与css选择器的区别
  • jQuery对象与Dom对象
  • jQuery中的Ajax
  • DOM元素的增删改查
  • DOM元素的遍历

  • jQuery淡入淡出与动画
  • jQuery尺寸
  • jQuery事件
  • window.onload 事件和 jQuery ready 函数有何不同
  • 原始类型与对象类型及对象之间的转换
  • 构造函数、实例、原型、原型链、继承等
  • 实现继承的方式及优缺点
  • typeof & instanceof
  • 原生ajax
  • 对象深浅拷贝
  • this的理解
  • 函数柯里化、高阶函数
  • bind、call、apply用法及区别
  • 字符串、数组、对象、日期等的属性与方法
  • 浏览器对象
    • Window对象
    • History对象
    • Location对象
    • Screen对象
  • 三大家族和一个事件对象
    • Offset家族
    • Scroll家族
    • Client家族
    • Event事件
  • Event-Loop 事件循环
    • js 运行机制
    • 进程与线程
    • 宏任务与微任务
    • Node中的Event-Loop
  • 原生DOM增删改查
  • 常见的模块化
  • 作用域、闭包与立即执行函数等
  • 同步与异步
  • 常见的循环及区别
    • for...in
    • for...of
  • let 与 const
  • 异步解决方案
    • Promise
    • Generator
    • Async/Await
  • 模块化(export & import)
  • 解构赋值(主要:数组和对象)
  • 数组、字符串、函数、日期等扩展方法
  • 默认值、扩展运算符
  • 数组forEach、some、every、map、filter、reducer等方法的使用及区别
  • Proxy

Stylus Sass Less

  • 常见三个预处理的用法及区别
  • 常见功能
    • Mixins
    • 循环 & 判断

TypeScript

  • TypeScript特点及理解
  • Typescript常用语法
    • 布尔值 boolean
    • 数字 number
    • 字符串 string
    • 数组 number[] Array
    • 元祖 Tuple
    • 枚举 enum
    • null & undefined
    • never
    • object
  • Typescript集成在React项目中
  • Typescript集成在Vue项目中

Webpack4.x

  • Webpack配置文件常见选项
    • 入口文件-entry
    • 出口文件-output
    • 模块-module
    • 插件-plugins
    • 模式-mode
    • 开发服务器-devServer
    • 解析-resolve
    • 源码调试-sourceMap
  • 常用Loader
    • 处理CSS文件
      • css-loader style-loader less less-loader node-sass sass-loader stylus stylus-loader
    • 添加CSS3前缀
      • postcss-loader autoprefixer
    • 处理ES6文件及更高级语法
      • babel-loader @babel/core @babel/preset-env @babel/runtime @babel/plugin-proposal @babel/plugin-proposal-class-properties @babel/plugin-transform-runtime
    • 处理图片、字体等文件
      • file-loader url-loader html-withimg-loader
  • 常用Plugin
    • 生成HTML文件 Html-webpack-plugin
    • 删除dist目录 clean-webpack-plugin
    • 压缩css文件 optimize-css-assets-webpack-plugin
    • 压缩js文件 uglifyjs-webpack-plugin
    • 复制目录插件 copyWebpackPlugin
    • 添加版权声明 bannerPlugin
    • 提取css文件 mini-css-extract-plugin extract-text-webpack-plugin
  • Webpack 自带优化
    • noParse 不去解析某依赖包中的依赖关系 jquery
    • IgnorePlugin 加载某依赖时,忽略某文件 moment
    • DllPlugin、DllRederencePlugin 动态链接库 react
    • Tree-Sharking、 Scope-Hosting
  • 引入依赖
    • expose-loader 暴露到window上
    • providePlugin 给每个模块都注入
    • externals选项 CDN引入 不打包
  • 定义环境变量 DefinePlugin
  • 不同环境 【common、dev、prod】
  • 多线程打包 happypack
  • 抽离公共代码
  • 懒加载 & 热加载
  • 打包单页&多页应用
  • Webpack跨域 & watch用法
  • 优化构建速度
  • 分析打包结果
  • Webpack & Grunt & Gulp的区别
  • 手写loader
  • 手写plugin
  • 手写简易版的webpack
    • babylon 将源码转换成AST
    • @babel/traverse 遍历节点
    • @babel/types 替换节点
    • @babel/generator 将替换好的节点生成
  • 理解Tapable

Vue全家桶

  • MVC & MVVM的理解
  • Virtual DOM的理解
  • 数据双向绑定 & 组件化
  • Vue常见API
  • 常见选项
    • methods watch computed filter mixins ...
  • 常用指令
    • v-for v-pre v-html v-bind v-model...
  • 常用组件
    • transition transition-group keep-alive slot ...
  • nextTickset refsslots scopedSlotsforceUpdate...
  • 动态绑定class & style
  • Vue生命周期
  • Vue监听数组
  • 组件的封装
  • Vue-cli2.x & Vue-cli3.x
  • 组件间的通信
    • 父子组件
      • 父组件向子组件 props $children
      • 子组件向父组件 parent
    • 非父子组件兄弟组件
      • 中央事件总线 EventBus
      • attrslisteners inheritAttrs
      • provide inject
  • Vue-loader的理解
  • Vue-Router的理解
    • router-link
    • router-view
  • 导航方式
    • 编程式导航
    • 声明式导航
  • 命名路由 & 命名视图
    • name属性 -> {name:, params:}
    • router-view的name属性与components对应
  • 动态路由及路由组件间传参
    • name + params方式
    • path + query方式
  • router & route的理解
  • 导航守卫
    • 组件内守卫
    • 路由独享守卫
  • 路由懒加载
    • vue异步组件
    • es提案的import()
    • webpack的require ensure()
  • Vuex的理解及使用场景
  • Vuex核心概念
    • State
    • Getters
    • Mutations
    • Actions
    • Modules
  • 脚手架搭建Vue全家桶项目
  • 服务端渲染SSR
    • 首屏渲染 & SEO 问题
    • Nuxt.js

React全家桶

  • JSX语法
  • 属性props & 状态state
  • React生命周期
  • React优化
    • shouldComponentUpdate
  • 函数组件 & 类组件 & 高阶组价
  • Fiber的理解
  • React Hooks
    • useState
    • useEffect
    • useContext
    • useReducer
  • React-Router-Dom
  • React路由的原理
  • 常用API
    • BrowserRouter & HashRouter
    • Route
    • Link & NavLink
    • Switch
    • Prompt
    • Redirect
    • match location history对象
  • Redux
  • 对Redux的理解
  • Action创建函数
  • 常用API
    • State
    • Action
    • Reducer
    • createStore
    • combineReducers
    • applyMiddleware
    • bindActionCreators
    • compose
  • Store常用方法
    • getState
    • dispatch
    • subscribe
  • react-redux
    • Provider
    • connect
      • mapStateToProps
      • mapDispatchToProps
  • 处理异步 redux-thunk

ReactNative & Weex

  • 搭建RN环境 & Weex环境
  • Flexbox布局
  • 导航间数据传递
  • 公共组件的封装
  • 常用组件
    • 列表组价 FlatList (上拉刷新、下拉加载)
    • 数据存储组件 AsyncStorage
    • 提示符组件 ActivityIndicator
    • 滚动组件组件 ScrollView
    • 状态栏组件 StatusBar
    • 加载网页组件 WebView
    • 动画组件 Animated
    • 样式组件 StyleSheet
    • 获取屏幕组件 Dimensions
  • RN项目常用第三依赖
    • 图片缩略图
      • react-native-image-picker
      • react-naitve-progress
      • react-native-image-resizer
    • 导航
      • react-navigation
      • react-native-router-flux
    • 启动屏
      • react-native-splash-screen
    • 微信 & 支付宝支付
      • react-native-wechat
      • react-native-yunpeng-alipay
    • 热更新
      • react-native-code-push
  • 视图组件库
    • antd-mobile-rn
  • RN项目安卓 & IOS打包

后端学习记录

  • 对Node的认识
  • 事件循环 & EventEmitter
  • 创建简单的服务器
  • 模块化
    • exports
    • module.exports
  • 核心模块
    • buffer
    • stream
    • http & https
    • process
  • 使用Node开发企业官网项目

Express

  • request & response对象属性和方法
  • GET & POST请求
  • 静态文件 static
  • 路由中req, res对象中的属性
  • 对中间件的理解
  • 常用中间件
    • body-parser
    • cookie-parser
  • 对Koa2的理解
  • 与Express的区别
  • 理解核心对象
    • Application
    • Context
    • Request
    • Response
  • 常见中间件
  • 中间件的概念
    • koa-body
    • koa-bodyparse
    • koa-multer
    • koa-router
    • koa-static
    • koa-compose
    • Koa2路由的使用
  • JDK安装
  • 常见数据类型的属性与方法
  • 面向对象的特性

  • 集合类
    • Collection
    • List Arraylist LinkedList
    • Set HashSet
    • Map HashMap
    • Vector
  • 实现方式
    • 继承Thread类
    • 实现Runnable接口
  • 创建Java连接Mysql、Redis工具类
  • 理解Java项目的MVC三大架构
  • 整合SSH项目
    • Spring
    • SpringMVC
    • MyBatis

SpringBoot

  • SpringBoot的使用及优点
  • 配置文件格式
    • .properties
  • 搭建SpringBoot+MyBatis项目
  • SpringBoot项目中常用注解
  • SpringBoot项目实现分页和排序功能
  • SpringBoot整合Swagger

Http协议与数据请求

  • Http请求与响应对象
  • TCP三次握手、四次挥手
  • Http常见方法与状态码
  • 方法
    • DELETE
  • 状态码
    • 1xx 信息类
    • 2xx 成功类
    • 3xx 重定向
    • 4xx 客户端错误
    • 5xx 服务端错误
  • 长连接与管线化
  • Etag & Expires & Cache-control等理解
  • 兼容版原生Ajax
  • Fetch
  • Axios
  • Flyio
  • 从输入URL到页面加载的全过程
  • 浏览器缓存
  • 重绘 & 回流
  • 常见浏览器及其内核
  • 数组
    • 扁平化数组
    • 求数组中最大值和最小值
  • Git
    • git clone
    • git status
    • git add .
    • git commit -am 'xxxx'
    • git pull origin dev
    • git push -u origin dev
    • git branch / -r
    • git checkout dev
    • git stash
  • GitHub & GitLab & Gitee
    • 如何创建在这些平台上常见代码仓库
    • 如何将本地项目与远程仓库关联
    • 使用GitHub搭建个人博客

UI层框架

  • BootStrap
  • iView
  • Andt Design
  • Element UI
  • MySql
    • Mac上安装Mysql
    • Mysql常见增删改查SQL语句
    • Java连接Mysql
    • Node连接Mysql
  • MonogoDB
    • Mac上安装MonogoDB
    • MonogoDB常见增删改查SQL语句
    • mongoose
    • Node连接MonogoDB
  • Redis
    • Mac上安装Redis
    • Redis支持的数据类型
      • String
      • Sorted Set
      • Java使用Redis
      • Node使用Redis
  • 微信小程序
    • 理解微信小程序的原理
    • 基础
      • tarBar
    • 授权获取用户信息
  • 上拉刷新 & 下拉加载
  • request请求
  • 各个文件代表的意思
  • 页面跳转及传递参数
  • 代码审核与发布
  • 常用组件
    • scroll-view
    • swiper
  • MpVue
    • 语法和vue很像
  • VSCode & WebStrom & IDEA
    • VSCode常用插件
    • WebStorm与IDEA永久安装
    • 常用快捷键

部署与运维

  • Linux
    • Mac上安装Linux
    • Linux目录结构及说明
    • Linux在工作中常用指令

  • FileZilla & XShell & WinSCP
    • Mac上这些软件的安装
    • 如何连接远程服务器
  • 防抖与节流
  • 图片懒加载

常见第三方依赖库

  • axios
  • better-scroll
  • lodash
  • moment
  • webpack4从零搭建Vue全家桶项目
  • webpack4从零搭建React全家桶项目
  • 使用VuePress搭建自己的技术博客

项目中常见错误

  • 移动端1像素边框
  • 彻底掌握Webpack4.x & 手写简易版Webpack
  • 彻底掌握常见的跨域方式与实现原理
  • 手写简易版Express
  • 手写简易版Koa2
  • 手写简易版React-Router
  • 手写简易版React & React-Diff
  • 手写简易版Vue框架的MVVM实现

2019年目标

  • 编写以上每个技术中核心知识点博客
  • 系统学习前端
    • HTML5
    • 原生JS基础
    • ES6 7 8 9 10
  • Vue深入理解与源码学习
  • React深入理解与源码学习
  • 学习Flutter
  • 学习前端常见设计模式
  • 学习JavaScript数据结构与算法

非常喜欢的一段话:在我们20岁的时候用30岁的心态来做事,那么当我们30岁的时候就可以享受别人40岁的成功!~💪💪💪

如果本文对你有帮助得话,给本文点个赞❤️❤️❤️

欢迎大家加入,一起学习前端,共同进步!

cmd-markdown-logo




About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK