Zakary Zhu's Blog

Try to find the way about self-improvement.


  • Home

  • Archives

  • Commonweal 404

  • About

  • Search

为什么选择Hook而非……?

Posted on 2019-02-04 | Edited on 2019-02-05 | In 前端 , 框架 , React , Hooks |

自从第一个关于React Hooks的 alpha 版本发布以来,有一个问题不断出现在讨论中:“为什么是 Hook 而非 <一些其他的 API> ?”

提示一下,以下的这些就是Hooks:

  • useState() 用于声明一个状态变量。
  • useEffect() 用于声明一个补充规则(side effect)。
  • useContext() 用于读取一些上下文的内容。

但是仍有一些其他的 API,例如React.memo()和<Context.Provider>,它们不是Hooks。通常提出的 Hook 版本会建议是noncompositional或者antimodular。本文将帮助你了解原因。

提示:这篇文章对那些对 API 讨论感兴趣的人来说是一个深刻的话题,你不需要考虑使用 React 来提升效率!

Read more »

将React作为UI运行

Posted on 2019-02-03 | Edited on 2019-03-25 | In 前端 , 框架 , React |

大多数教程都将 React 作为 UI 库来引入。这逻辑上是对的,因为 React 就是一个 UI 库,标语中就是这么表述的!

React homepage screenshot

我之前写过关于创建用户界面的挑战。但这篇文章却是以不同的方式讨论 React——更像是运行时系统(programming runtime).

这篇文章不会教你如何创建用户界面。但是它可能会帮助你更深入地理解 React 编程模式。


提示:如果你正在学习 React,请查看文档。

⚠️

这是个深度讨论帖 — 内容对初学者很不友好。在这篇文章中,我从第一原则描述了大部分 React 编程模型,但并不会解释如何使用它——他是如何工作的。

它面向有经验的程序猿和从事其他 UI 库的人,他们询问了在 React 中选择的一些权衡。我希望你们会觉得它很有用!

很多人成功使用 React 多年但没有考虑大多数这些话题。与其说这是以设计师为中心,这显然更会是以程序猿为中心的 React 视角。尽管我认为同时提供双方的资源并不会造成很大的负荷。

在免责声明之后,让我们开始进入正题吧!


Read more »

年前一些随笔

Posted on 2019-02-03 | In 生活 , 随笔 |

  年关将至,过年的氛围却已经在不觉中被接踵而至的事情冲淡了,可能是上火车前的大扫除,也可能是春运火车上窒息般的体验、恶劣的吸烟乘客,又或是刚刚回到武汉对寒冷的不适……

Read more »

使用 React.lazy() 和 Suspense 提高React应用程序的性能

Posted on 2019-01-07 | Edited on 2019-01-09 | In 前端 , 框架 , React |

Lazy loading💤 已经成为被广泛应用于加载提速的优化技术之一。延迟加载的前景有助于将某些 web app 出现程序性能问题的风险降至最低〽。

在本文中,我们将研究如何使用 Lazy loading💤 来优化 React 应用程序中的加载时间。

Read more »

覆盖模式——提高React组件的复用率

Posted on 2019-01-04 | Edited on 2019-01-07 | In 前端 , 框架 , React , Component |

Overrides React Pattern

Read more »

React PureComponent 使用指南

Posted on 2018-07-01 | In 前端 , 框架 , React , Component |

为什么使用? React15.3 中新加了一个 PureComponent 类,顾名思义, pure 是纯的意思, PureComponent 也就是纯组件,取代其前身 PureRenderMixin , PureComponent 是优化 React 应用程序最重要的方法之一,易于实施,只要把继承 ...

Read more »

fetch使用整理

Posted on 2018-06-11 | In 前端 , 网络请求 , fetch |

浏览器支持情况

fetch是相对较新的技术,当然就会存在浏览器兼容性的问题,当前各个浏览器低版本的情况下都是不被支持的,因此为了在所有主流浏览器中使用fetch 需要考虑 fetch 的 polyfill 了

  
require('es6-promise').polyfill();
require('isomorphic-fetch');
  
Read more »

关于第三方API跨域那些事

Posted on 2018-03-21 | In Nodejs |

我们在项目开发中,使用第三方接口难免会遇到一些跨域问题,而跨域这个话题网上已经讨论了无数遍了。常用的有:

  • jsonp
  • cors
  • 服务端反向代理(因为服务端不存在跨域问题)
Read more »

GitHub 项目徽章的添加和设置

Posted on 2018-01-03 | In markdown , badge |

许多同学在 GitHub 上发布了自己的开源项目,有辛苦开发的实用工具、构思巧妙的开源库、别具一格的 App、精心整理的示例代码等等。

自己花了大把时间和精力构建的项目,当然是希望能够得到更多人的关注,被更多的人知晓或者使用。如何更好滴向他人展示自己的项目,介绍项目相关信息呢?用一些通用的小图标来描述项目相关信息不失为一种很棒的选择,几个好看的徽标能够为自己的项目说明增色不少!

提示:因为文中某些示例需要 GitHub 的 Markdown 环境支持,所以如果遇到阅读问题,可以在 GitHub 查看,地址为 github.com/EyreFree/EF…。

Read more »

30分钟学会反向Ajax

Posted on 2017-12-27 | In 前端 , 网络请求 , ajax |

场景1:当有新邮件的时候,网页自动弹出提示信息而无需用户手动的刷新收件箱。

场景2:当用户的手机扫描完成页面中的二维码以后,页面会自动跳转。

场景3:在类似聊天室的环境中有任何人发言,所有登录用户都可以即时看见信息。

与传统的MVC模型请求必须从客户端发起由服务器响应相比,使用反向Ajax能够模拟服务器端主动向客户端推送事件从而提高用户体验。本文将分两个部分讨论反向Ajax技术,包括:Comet和WebSocket。文章旨在演示如何实现以上两种技术手段,Struts2或SpringMVC中的应用并未涉及。此外,Servlet的配置也采用注解的方式,相关知识大家可以参考其它资料。

Read more »
123
ZakaryCode

ZakaryCode

日光之下并无新事,先行的事后必再行,已事无需纪念,先前已有。

21 posts
21 categories
37 tags
RSS
Creative Commons
0%
© 2017 – 2019 Zakary Zhu
Powered by Hexo v3.8.0