-
Notifications
You must be signed in to change notification settings - Fork 1
/
20191203.html
26 lines (24 loc) · 15.3 KB
/
20191203.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>小蜜蜂前端周刊第四十九期 | 小蜜蜂前端周刊</title>
<meta name="generator" content="VuePress 1.8.2">
<meta name="description" content="好好学习,天天向上。">
<link rel="preload" href="/FE-Weekly/assets/css/0.styles.a908ec75.css" as="style"><link rel="preload" href="/FE-Weekly/assets/js/app.44c279c7.js" as="script"><link rel="preload" href="/FE-Weekly/assets/js/2.946cf503.js" as="script"><link rel="preload" href="/FE-Weekly/assets/js/55.012f73b8.js" as="script"><link rel="preload" href="/FE-Weekly/assets/js/6.de6a323c.js" as="script"><link rel="prefetch" href="/FE-Weekly/assets/js/10.5352507b.js"><link rel="prefetch" href="/FE-Weekly/assets/js/11.83a72ade.js"><link rel="prefetch" href="/FE-Weekly/assets/js/12.00b61850.js"><link rel="prefetch" href="/FE-Weekly/assets/js/13.d79373a6.js"><link rel="prefetch" href="/FE-Weekly/assets/js/14.462af9ef.js"><link rel="prefetch" href="/FE-Weekly/assets/js/15.8441e7fa.js"><link rel="prefetch" href="/FE-Weekly/assets/js/16.7f190713.js"><link rel="prefetch" href="/FE-Weekly/assets/js/17.d836d8bc.js"><link rel="prefetch" href="/FE-Weekly/assets/js/18.636e69cb.js"><link rel="prefetch" href="/FE-Weekly/assets/js/19.9b122cc9.js"><link rel="prefetch" href="/FE-Weekly/assets/js/20.413f7eec.js"><link rel="prefetch" href="/FE-Weekly/assets/js/21.c65a8de1.js"><link rel="prefetch" href="/FE-Weekly/assets/js/22.97da2382.js"><link rel="prefetch" href="/FE-Weekly/assets/js/23.26864382.js"><link rel="prefetch" href="/FE-Weekly/assets/js/24.3a360530.js"><link rel="prefetch" href="/FE-Weekly/assets/js/25.d971b269.js"><link rel="prefetch" href="/FE-Weekly/assets/js/26.23721e08.js"><link rel="prefetch" href="/FE-Weekly/assets/js/27.0cf07053.js"><link rel="prefetch" href="/FE-Weekly/assets/js/28.ece7a01d.js"><link rel="prefetch" href="/FE-Weekly/assets/js/29.e7a224ad.js"><link rel="prefetch" href="/FE-Weekly/assets/js/3.e8932c61.js"><link rel="prefetch" href="/FE-Weekly/assets/js/30.a70521fc.js"><link rel="prefetch" href="/FE-Weekly/assets/js/31.c82acf82.js"><link rel="prefetch" href="/FE-Weekly/assets/js/32.e092bf1f.js"><link rel="prefetch" href="/FE-Weekly/assets/js/33.a2b31d8a.js"><link rel="prefetch" href="/FE-Weekly/assets/js/34.f332a696.js"><link rel="prefetch" href="/FE-Weekly/assets/js/35.1a57f590.js"><link rel="prefetch" href="/FE-Weekly/assets/js/36.d502f847.js"><link rel="prefetch" href="/FE-Weekly/assets/js/37.0a25424b.js"><link rel="prefetch" href="/FE-Weekly/assets/js/38.7ea8abc4.js"><link rel="prefetch" href="/FE-Weekly/assets/js/39.c31b2e25.js"><link rel="prefetch" href="/FE-Weekly/assets/js/4.e6e8c85d.js"><link rel="prefetch" href="/FE-Weekly/assets/js/40.998d7921.js"><link rel="prefetch" href="/FE-Weekly/assets/js/41.0badd321.js"><link rel="prefetch" href="/FE-Weekly/assets/js/42.3c31a06f.js"><link rel="prefetch" href="/FE-Weekly/assets/js/43.86f810a9.js"><link rel="prefetch" href="/FE-Weekly/assets/js/44.75e0f4c4.js"><link rel="prefetch" href="/FE-Weekly/assets/js/45.cc392e03.js"><link rel="prefetch" href="/FE-Weekly/assets/js/46.6278f709.js"><link rel="prefetch" href="/FE-Weekly/assets/js/47.e4eaf2a2.js"><link rel="prefetch" href="/FE-Weekly/assets/js/48.313a7005.js"><link rel="prefetch" href="/FE-Weekly/assets/js/49.3bb92779.js"><link rel="prefetch" href="/FE-Weekly/assets/js/5.f9b108dd.js"><link rel="prefetch" href="/FE-Weekly/assets/js/50.7f55cbb3.js"><link rel="prefetch" href="/FE-Weekly/assets/js/51.c323b810.js"><link rel="prefetch" href="/FE-Weekly/assets/js/52.12606e67.js"><link rel="prefetch" href="/FE-Weekly/assets/js/53.2d7b3e69.js"><link rel="prefetch" href="/FE-Weekly/assets/js/54.92e08cca.js"><link rel="prefetch" href="/FE-Weekly/assets/js/56.03073a43.js"><link rel="prefetch" href="/FE-Weekly/assets/js/57.e3439957.js"><link rel="prefetch" href="/FE-Weekly/assets/js/58.baa6fd74.js"><link rel="prefetch" href="/FE-Weekly/assets/js/59.a4ed02f6.js"><link rel="prefetch" href="/FE-Weekly/assets/js/60.42e7e9e5.js"><link rel="prefetch" href="/FE-Weekly/assets/js/61.48f6b23c.js"><link rel="prefetch" href="/FE-Weekly/assets/js/62.43bc49af.js"><link rel="prefetch" href="/FE-Weekly/assets/js/7.eefe6189.js"><link rel="prefetch" href="/FE-Weekly/assets/js/8.02d5fb3e.js"><link rel="prefetch" href="/FE-Weekly/assets/js/9.473470b2.js">
<link rel="stylesheet" href="/FE-Weekly/assets/css/0.styles.a908ec75.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/FE-Weekly/" class="home-link router-link-active"><!----> <span class="site-name">小蜜蜂前端周刊</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/FE-Weekly/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="https://github.com/bee-fe/FE-Weekly" target="_blank" rel="noopener noreferrer" class="nav-link external">
Github
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/FE-Weekly/" class="nav-link">
首页
</a></div><div class="nav-item"><a href="https://github.com/bee-fe/FE-Weekly" target="_blank" rel="noopener noreferrer" class="nav-link external">
Github
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>小蜜蜂前端周刊第四十九期</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/FE-Weekly/20191203.html#react" class="sidebar-link">React</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/FE-Weekly/20191203.html#第1787期深入理解react-hooks是如何工作的" class="sidebar-link">第1787期深入理解React hooks是如何工作的</a></li><li class="sidebar-sub-header"><a href="/FE-Weekly/20191203.html#深入理解-react-redux-数据流并基于其优化前端性能-issue-36-shaozj-blog" class="sidebar-link">深入理解 react/redux 数据流并基于其优化前端性能 Issue #36 shaozj/blog</a></li></ul></li><li><a href="/FE-Weekly/20191203.html#源码" class="sidebar-link">源码</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/FE-Weekly/20191203.html#精读《源码学习》" class="sidebar-link">精读《源码学习》</a></li></ul></li><li><a href="/FE-Weekly/20191203.html#性能" class="sidebar-link">性能</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/FE-Weekly/20191203.html#must-read-making-http-instagram-com-load-50-faster" class="sidebar-link">Must-read: Making http://Instagram.com load 50% faster</a></li></ul></li><li><a href="/FE-Weekly/20191203.html#职业生涯" class="sidebar-link">职业生涯</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/FE-Weekly/20191203.html#如何成为公司独当一面的工程师" class="sidebar-link">如何成为公司独当一面的工程师</a></li></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="小蜜蜂前端周刊第四十九期"><a href="#小蜜蜂前端周刊第四十九期" class="header-anchor">#</a> 小蜜蜂前端周刊第四十九期</h1> <h2 id="react"><a href="#react" class="header-anchor">#</a> React</h2> <h3 id="第1787期深入理解react-hooks是如何工作的"><a href="#第1787期深入理解react-hooks是如何工作的" class="header-anchor">#</a> <a href="http://mp.weixin.qq.com/s?__biz=MjM5MTA1MjAxMQ==&mid=2651234837&idx=1&sn=9dc5e5fea7ccc0e8010cb55703aabebe&chksm=bd497b918a3ef287fdc3ab0a2e0cc1e4bba12fe55936b20a8947331c3df00e4097f0762913e9#rd" target="_blank" rel="noopener noreferrer">第1787期深入理解React hooks是如何工作的<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></h3> <p>在本文,我们将使用闭包实现一个React Hooks的微型版本。这么做有两个目的,一是演示闭包的效用,二是如何使用29行易读的JS代码实现Hooks。最后我们可以很自然的得到自定义Hooks。</p> <h3 id="深入理解-react-redux-数据流并基于其优化前端性能-issue-36-shaozj-blog"><a href="#深入理解-react-redux-数据流并基于其优化前端性能-issue-36-shaozj-blog" class="header-anchor">#</a> <a href="https://github.com/shaozj/blog/issues/36" target="_blank" rel="noopener noreferrer">深入理解 react/redux 数据流并基于其优化前端性能 Issue #36 shaozj/blog<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></h3> <p>深入理解 react/redux 数据流应该是一个专业 react 前端需要完全掌握的技能,如果未能充分理解,那么很多情况下,你并不知道你开发的应用是如何工作的,这很容易带来问题,从而影响项目的持续发展和可维护性。</p> <h2 id="源码"><a href="#源码" class="header-anchor">#</a> 源码</h2> <h3 id="精读《源码学习》"><a href="#精读《源码学习》" class="header-anchor">#</a> <a href="https://zhuanlan.zhihu.com/p/74620703" target="_blank" rel="noopener noreferrer">精读《源码学习》<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></h3> <p>javascript-knowledge-reading-source-code 这篇文章介绍了阅读源码的重要性,精读系列也已有八期源码系列文章。阅读源码有助于理解抽象的概念,比如虚拟 DOM;有助于做方案调研,而不仅仅只看 Github star 数量;了解优秀框架目录结构的设计;看到一些陌生的工具函数,还可能激发你对 JS 规范的查阅,这种问题驱动的方式也是笔者推荐的 JS 规范学习方式。</p> <h2 id="性能"><a href="#性能" class="header-anchor">#</a> 性能</h2> <h3 id="must-read-making-http-instagram-com-load-50-faster"><a href="#must-read-making-http-instagram-com-load-50-faster" class="header-anchor">#</a> <a href="https://instagram-engineering.com/@mr_sharpoblunto" target="_blank" rel="noopener noreferrer">Must-read: Making http://Instagram.com load 50% faster<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></h3> <p>Preload 关键脚本;为 modern 浏览器提供 es2017 脚本;Prefetching feed 图片;Pushing data with early flushing and progressive HTML。</p> <h2 id="职业生涯"><a href="#职业生涯" class="header-anchor">#</a> 职业生涯</h2> <h3 id="如何成为公司独当一面的工程师"><a href="#如何成为公司独当一面的工程师" class="header-anchor">#</a> <a href="https://juejin.im/post/5dd4cc71f265da0bca7899cf" target="_blank" rel="noopener noreferrer">如何成为公司独当一面的工程师<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></h3> <p>如今的互联网市场对高阶技术岗位的需求越来越多,成为独当一面的工程师已经成为很多一二线互联网公司招聘的标准门槛了。那么如何成长为独当一面的工程师呢,我会从技术能力和业务能力 2 个方面去阐述。</p> <div class="gitalk-container"><div id="gitalk-container"></div></div></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">最后更新:</span> <span class="time">2019/12/3 下午4:05:01</span></div></footer> <!----> </main></div><div class="global-ui"></div></div>
<script src="/FE-Weekly/assets/js/app.44c279c7.js" defer></script><script src="/FE-Weekly/assets/js/2.946cf503.js" defer></script><script src="/FE-Weekly/assets/js/55.012f73b8.js" defer></script><script src="/FE-Weekly/assets/js/6.de6a323c.js" defer></script>
</body>
</html>