我在 github 上新建了一个仓库 日问,天天一道面试题,有关前端,后端,devops以及软技能,促进职业成长,敲开大厂之门,欢迎交流前端
在 Issue 中交流与讨论: Issue 地址react
依个人见解,React hooks
主要解决了状态以及反作用难以复用的场景,除此以外,他对我最大的好处就是在 Console
中不会看到重重叠叠相同名字的组件了(HOC)。git
目前使用感受最爽的两个hook,都是关于请求的。一个是 apollo-client
的 useQuery
,一个是 swr。github
在 Issue 中交流与讨论: Issue 地址面试
首参不同,直接上 API编程
React.cloneElement(
element,
[props],
[...children]
)
React.createElement(
type,
[props],
[...children]
)
复制代码
更多描述: 好比设计成 `useFetch` 这种形式,它的 API 应该如何设计
在 Issue 中交流与讨论: Issue 地址小程序
能够参考 How to fetch data with React Hooks?后端
在 Issue 中交流与讨论: Issue 地址浏览器
虚拟 DOM 最大的优点在于抽象了本来的渲染过程,实现了跨平台的能力,而不单单局限于浏览器的 DOM,能够是安卓和 IOS 的原生组件,能够是近期很火热的小程序,也能够是各类 GUI。服务器
vdom 把渲染过程抽象化了,从而使得组件的抽象能力也获得提高,而且能够适配 DOM 之外的渲染目标。
Virtual DOM 在牺牲(牺牲很关键)部分性能的前提下,增长了可维护性,这也是不少框架的通性。 实现了对 DOM 的集中化操做,在数据改变时先对虚拟 DOM 进行修改,再反映到真实的 DOM中,用最小的代价来更新DOM,提升效率(提高效率要想一想是跟哪一个阶段比提高了效率,别只记住了这一条)。
打开了函数式 UI 编程的大门。
能够渲染到 DOM 之外的端,使得框架跨平台,好比 ReactNative,React VR 等。
能够更好的实现 SSR,同构渲染等。这条实际上是跟上面一条差很少的。
组件的高度抽象化。
虚拟 DOM 的缺点
在 Issue 中交流与讨论: Issue 地址
在 useEffect
,把第二个参数即依赖的状态,设置为 []
useEffect(callback, [])
复制代码
在 Issue 中交流与讨论: Issue 地址
不能够,created/componentWillMount 时,还未挂载,代码仍然在服务器中执行,此时没有浏览器环境,所以此时访问 localStorage 将会报错
在 Issue 中交流与讨论: Issue 地址
各类优秀实现=》github.com/streamich/r…