yl
Webpack
Webpack 静态打包构建工具
babel-loader style-loader url-file css-loarder sass-loader/less-loader loader:
HTMLWebpackPugin SplitChunksPlugin DIIPlugin Plugin:
React
常用生命周期
PureComponent 优化:浅比较Props和State值是否发生了变化 只有发生了变化才进行更新,如果组件有自己的shouldComponentUpdate则用组件自己的判断,否则才做浅比较
key:diff算法优化 一般唯一id
如果用index做索引 有时候页面显示回有问题
为什么要用虚拟Dom?
- 页面性能的提升:尽管在我们前面的各种论证对比下,虚拟 DOM 并非最优解,但在大多数场景下,虚拟 DOM 能给你的页面过得去的性能,并且提供给你更爽的开发模式。
- 开发效率的提升:通过对前端发展历史的描述可以看出,每一次对 DOM 操作的革新,背后都是对开发效率的提升。不得不提的是,在 React 或者 Vue 时代,同样的页面,我们的开发效率是提升了不少。就单单一个将输入框的内容输出到页面的 mvvm 模式的开发,引入 Vue 或 React 就可以快速搞定。
- 跨平台的问题:虚拟 DOM 是对渲染内容的一层抽象描述,这就使得视图层和渲染层做了解耦。这层对渲染层的描述可以是 web、native、小程序等多端的,在不同端可能只需要一份代码就可以 work 。毕竟连 Vue3 也将 DOM 操作的内容提在一个独立的 runtime-dom.js 模块中,目的就是在多端操作渲染层的内容从而实现跨平台的可能性。
- 更利于前后端分离开发和组件拆分,项目拆分
类组件和函数组件的区别
区别 函数组件 类组件 是否有this 没有 有 是否有生命周期 没有 有 是否有状态state 没有 有 兄弟组件之间通信/全局状态管理
Redux Mobx
Redux
forceUpdate
JS基础
typeof
string boolean object function undefined symbol bigint
typeof Array === object
Array.isArary
[] Instanceof Array
Object.prototype.toString.call([])
Promise API
Promise all / race 和数组every和some一样意思
await
如果有个数据队列这个时候怎么办
await 或者 Promise.all
闭包以及应用
利用闭包立即执行表达式(function ( var a = 11 ) {})() 实现变量隔离
上下文作用域:This 指向
CSS基础
flex
Display: flex
Justyfiy-content: center
Algin-items:center
Flex: 1
重置水平居中