公司:新东方
新东方学校,简称新东方,全名新东方教育科技集团有限公司,公司在开曼群岛注册,总部位于北京市海淀区中关村,在美国纽约证券交易所上市,是中华人民共和国目前规模最大的教育培训机构。
北京新东方学校于1993年11月16日由俞敏洪创立,最早专营大学生出国英语考试(托福、GRE等)培训,2001年组建以北京新东方学校为基础的新东方教育科技集团。目前新东方业务已扩展到中国国内英语考试培训、泡泡少儿教育(数学、英语、语文、美术……)、其他外语培训、优能中学全科培训(语文、数学、英语、理科综合、文科综合)、出国咨询(前途出国)等。
Array.fromAsync 方法简介
Array.fromAsync 是 ECMAScript 的一个提案,当前已经进入了 Stage-3 阶段,很可能在明年纳入到 ECMAScript 2023 标准中,本文对 Array.fromAsync 做一个简单介绍。
React PureComponent 与函数组件(使用 Hooks)之间的差异
搞清楚 PureComponent 和它所解决的问题,了解它是否可以在 Hook 和函数组件的世界中被替换,并介绍 React 重新渲染(re-render)一个有趣(但有点无用)的怪异行为。
Wechaty 使用网页版微信实现机器人的思路
本文主要通过阅读源码,来简单介绍 Wechaty 使用微信网页版实现机器人的思路。
React 可组合 API 的设计原则
在本文中,我们将深入探讨用于分解组件和设计可组合 API 的主要原则。并以 Tabs 组件为例,来说明我们需要解决的核心问题和做出的各种权衡。
一份详尽的 React re-render 指南
什么是 re-render(重新渲染)?哪些是必要的 re-render?哪些是非必要的 re-render?如果你对这些问题还不是很明白,那么可以在这篇文章中找到答案。本文是一篇比较详尽的 React re-render 指南,会着重介绍和解答以下问题:什么是 re-render、哪些是必要或非必要 的 re-render、什么条件能够触发 React 组件 re-render。除此之外,还会介绍一些避免 re-render 的重要开发模式,以及引起不必要 re-render 的反模式。并且针对每种模式和反模式都提供了示例图。
React 状态管理 Redux 代码实现
Redux 是我们经常接触的一个状态管理工具,将整个应用状态存储到到一个地方进行集中的管理,而本文实现一个简单的 Redux。
使用 Context + useReducer 实现 React 全局状态管理
使用 Context 和 useReducer 实现一种简单的全局状态管理。
使用 Proxy 实现 React 实现全局状态管理
在 Vue 3.0 中使用 Proxy 实现了数据的双向绑定,即当数据发生变化的时候,视图也就发生变化,当视图发生变化的时候,数据也会跟着同步变化。
在 React 中是单向数据流,数据只能从父组件通过属性的方式传给其子组件,那么能否使用 Proxy 做状态管理呢?答案当然是可以的,本文以计数器组件的开发为例子,使用 Proxy 实现一个简单的 React 全局状态管理。
React 实现全局状态管理的一种方案
本文以计数器组件的开发为例子,介绍一种使用 React Hooks 实现全局状态管理的方法。
CSS 容器查询
在响应式布局布局中,经常使用媒体查询(Media Queries)检测视窗的宽高,实现自元素样式的自动调整。但是在一些页面设计中,元素的容器尺寸发生变化时,元素的样式也需要随之变化。很显然,媒体查询无法支持这种场景。为了解决这类问题,CSS 增加了一个新的特性 容器查询(Container Queries)。
编写更好的 CSS 代码 (Part V)
使用新的 CSS 特性,写出好的 CSS 代码。
编写更好的 CSS 代码 (Part Ⅳ)
在早期的 Web 开发中,页面的布局和定位通常要用表格和各种 hack 技术来实现。与那时相比,CSS 已经得到了长足的发展。如今,开发人员可以很轻松地编写出适用于所有主流浏览器的 CSS 代码,在实现复杂布局时也不会像以前那样绞尽脑汁。这不仅使响应式布局变得更容易,还可以通过删除冗余的代码来发布体积更小的样式。在本文中,我们将使用现代技术来降低代码的复杂程度,通过一些较新的技术来编写出更好的 CSS 代码。
编写更好的 CSS 代码 (Part Ⅲ)
我们通过一些较新的技术来编写出更好的 CSS 代码,在本文中主要介绍逻辑属性的使用。
编写更好的 CSS 代码 (Part Ⅱ)
在早期的 Web 开发中,页面的布局和定位通常要用表格和各种 hack 技术来实现。与那时相比,CSS 已经得到了长足的发展。如今,开发人员可以很轻松地编写出适用于所有主流浏览器的 CSS 代码,在实现复杂布局时也不会像以前那样绞尽脑汁。这不仅使响应式布局变得更容易,还可以通过删除冗余的代码来发布体积更小的样式。在本文中,我们将使用现代技术来降低代码的复杂程度,通过一些较新的技术来编写出更好的 CSS 代码。
编写更好的 CSS 代码 (Part I)
在早期的 Web 开发中,页面的布局和定位通常要用表格和各种 hack 技术来实现。与那时相比,CSS 已经得到了长足的发展。如今,开发人员可以很轻松地编写出适用于所有主流浏览器的 CSS 代码,在实现复杂布局时也不会像以前那样绞尽脑汁。这不仅使响应式布局变得更容易,还可以通过删除冗余的代码来发布体积更小的样式。在本文中,我们将使用现代技术来降低代码的复杂程度,通过一些较新的技术来编写出更好的 CSS 代码。
编写防御性 CSS 实践 (Part Ⅳ)
众所周知,网页上呈现的内容不完全是静态的,是可以发生变化的,因此这增加了 CSS 出现问题的可能性。我们希望用一些方法来避免 CSS 出现某些意料之外的样式问题。本文介绍一系列防御性 CSS 的代码片段,帮助我们编写出更健壮的 CSS 代码,减少因内容动态的变化引起样式上的问题。点击 编写防御性 CSS 实践 (Part I) 、编写防御性 CSS 实践 (Part Ⅱ)、编写防御性 CSS 实践 (Part Ⅲ)可查看前几篇文章。