-
xiaozhi
-
为了保证的可读性,本文采用意译而非直译。想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你!到 React 16.8 目前为止,如果编写函数组件,然后遇到需要添加状态的情况,咱们就必须将组件转换为类组件。编写class Thing extends React.Component,将函数体复制到render()方法中,修复缩进,最后添加需要的状态。今天,可以使用 Hook 获得相同的
-
xiaozhi
-
为了保证的可读性,本文采用意译而非直译。想阅读更多优质文章请猛戳GitHub博客,一年百来篇优质文章等着你!我们大部分 React 类组件可以保存状态,而函数组件不能? 并且类组件具有生命周期,而函数组件却不能?React 早期版本,类组件可以通过继承PureComponent来优化一些不必要的渲染,相对于函数组件,React 官网没有提供对应的方法来缓存函数组件以减少一些不必要的渲染,直接 16
-
xiaozhi
-
使用 Ref Hooks类组件中使用 Ref 一般有:String RefCallback RefCreateRef上述在函数组件中没有办法使用它们,取而代之的是useRefHooks。useRef主要有两个使用场景:获取子组件或者 DOM 节点的句柄渲染周期之间的共享数据的存储大家可能会想到 state 也可跨越渲染周期保存,但是state的赋值会触发重渲染,但是ref不会,从这点看 ref 更
-
xiaozhi
-
使用 Context Hooks使用 Context ,首先顶层先声明Provier组件,并声明value属性,接着在后代组件中声明Consumer组件,这个Consumer子组件,只能是唯一的一个函数,函数参数即是Context的负载。如果有多个Context,Provider和Consumer任意的顺序嵌套即可。此外我们还可以针对任意一个Context使用contextType来简化对这个Co
-
xiaozhi
-
什么是 HooksHook 是 React 16.8 的新增特性。它可以让你在不编写类组件的情况下使用state以及其他的React特性。类组件的不足状态逻辑复用难缺少复用机制渲染属性和高阶组件导致层级冗余趋向复杂难以维护生命周期函数混杂不相干逻辑相干逻辑分散在不同生命周期this 指向困扰内联函数过度创建新句柄类成员函数不能保证thisHooks 优势优化类组件的三大问题函数组件无 this 问
-
xiaozhi
-
本节主要讲解以下几个新的特性:ContextContextTypelazySuspense错误边界(Error boundaries)momoContext定义:Context 提供了一种方式,能够让数据在组件树中传递而不必一级一级手动传递。这定义读的有点晦涩,来看张图:假设有如上的组件层级关系,如果最底层的Item组件,需要最顶层的Window组件中的变量,那我们只能一层一层的传递下去。非常的繁
-
xiaozhi
-
本节主要讲解以下几个新的特性:ContextContextTypelazySuspense错误边界(Error boundaries)momoContext定义:Context 提供了一种方式,能够让数据在组件树中传递而不必一级一级手动传递。这定义读的有点晦涩,来看张图:假设有如上的组件层级关系,如果最底层的Item组件,需要最顶层的Window组件中的变量,那我们只能一层一层的传递下去。非常的繁
-
xiaozhi
-
React是流行的javascript框架之一,在2019年及以后将会更加流行。React于2013年首次发布,多年来广受欢迎。它是一个声明性的、基于组件的、用于构建用户界面的高效javascript库。以下是面试前必须了解的话题。什么是声明式编程声明式编程 vs 命令式编程什么是函数式编程什么是组件设计模式React 是什么React 和 Angular 有什么不同什么是虚拟DOM及其工作原理什
-
xiaozhi
-
React 作为一个库,它没有规定项目的整体结构。这很好,因为它给了我们自由去尝试不同的方法,并适应更适合我们的方式。另一方面,这可能会给React领域的开发人员带来一些困惑。我将会在本文为大家展示我已经使用过一段时间并且效果不错的方式,这些方式没有通过重新造轮子来实现,而是通过将社区中的方案组合和提炼得到。目录结构我经常遇到的一个问题是如何组织文件和目录结构。在这篇文章中,我们认为你已有一个最小
-
xiaozhi
-
React高级组件精讲高阶函数是以函数为参数,并且返回也是函数的的函数。类似的,高阶组件(简称HOC)接收 React 组件为参数,并且返回一个新的React组件。高阶组件本质也是一个函数,并不是一个组件。高阶组件的函数形式如下:constEnhanceComponent=higherOrderComponent(WrappedComponent)通过一个简单的例子解释高阶组件是如何复用的。现在有
-
xiaozhi
-
本文是React造轮系列第三篇。1.React 造轮子系列:Icon 组件思路2.React造轮系列:对话框组件 - Dialog 思路初始化 Layout参考 And Design ,Layout 组件分别分为Layout,Header,Aside,Content,Footer五个组件。基本使用结构如下:<Layout>
<Header>header</Heade
-
xiaozhi
-
UI对话框一般是我们点击按钮弹出的这么一个东西,主要类型有Alter,Confirm及Modal, Modal 一般带有半透明的黑色背景。当然外观可参考 AntD 或者 Framework 等。确定 APIAPI 方面主要还是要参考同行,因为如果有一天,别人想你用的UI框架时,你的 API 跟他之前常用的又不用,这样就加大了入门门槛,所以API 尽量保持跟现有的差不多。对话框除了提供显示属性外,还
-
xiaozhi
-
简介本轮子是通过 React + TypeScript + Webpack 搭建的,至于环境的搭建这边就不在细说了,自己动手谷歌吧。当然可以参考我的源码。这里我也是通过别人学的,主要做些总结及说明造各个轮子的一种思路,方便今后使用别人的的轮子时自己脑中有造轮子的思想,能通过修改源码及时修改 bug,按时上线。本文的 Icon 组件主要是参考Framework7 中的 Icon React Comp
-
xiaozhi
-
最近发布不久的Vue 2.6,使用插槽的语法变得更加简洁。 对插槽的这种改变让我对发现插槽的潜在功能感兴趣,以便为我们基于Vue的项目提供可重用性,新功能和更清晰的可读性。 真正有能力的插槽是什么?如果你是Vue的新手,或者还没有看到2.6版的变化,请继续阅读。也许学习插槽的最佳资源是Vue自己的文档,但是我将在这里给出一个纲要。插槽是什么?插槽是Vue组件的一种机制,它允许你以一种不同于严格的父
-
xiaozhi
-
Cookie为 Web 应用程序保存用户相关信息提供了一种有用的方法。例如,当用户访问咱们的站点时,可以利用Cookie保存用户首选项或其他信息,这样,当用户下次再访问咱们的站点时,应用程序就可以检索以前保存的信息。Cookie 是什么鬼Cookie是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。C
-
xiaozhi
-
本文主要讲解怎么提高展开运算的性能,在此之前先简单说说展开运算在数组中的工作原理。展开运算符或三个点,接受一个数组数组或通常是可迭代的[... arrayOrIterable]并将数组元素分解,并使用这些分解部分构造一个新数组。展开运算符可以放在数组中的任何位置:constnumbers=[1,2,3];
[0,...numbers];//=>[0,1,2,3]
[0,...number
-
xiaozhi
-
问题1:Java和JavaScript有什么不同JavaJavaScriptJava是一种OOP编程语言。JavaScript是一种OOP脚本语言。它创建在虚拟机或浏览器中运行的应用程序。代码只在浏览器上运行。需要编译Java代码。JS代码都是文本的形式。问题2:什么 JavascriptJavaScript 是一种轻量级的解释型编程语言,具有面向对象的特性,允许各位在其他静态HTML页面中构建交
-
xiaozhi
-
本文主要介绍一些最常用的JS字符串函数,列表如下:charAt(x)charCodeAt(x)concat(v1,v2..)fromCharcode(c1,c2)indexOf(substr, [start])lastIndexOf(substr, [start])match(regexp)replace(regexp/substr, replacetext)search(regexp)slice
-
xiaozhi
-
JS的一些特性极大地改变了咱们的编码方式。从ES6年开始,对咱们代码影响最大的特性的解 、箭头函数、类和模块系统。到2019年8月,一个新的可选链提案已经进入第三阶段,这是一个很好的改进。可选链接改变了从深层对象结构访问属性的方式。来看看这是又是什么骚操作。这个礼拜《大迁世界》有抽奖活动,奖品:专栏 《左耳听风》 x3, 技术书 x5,欢迎关注回复:抽奖问题由于JS的动态特性,对象可以具有多层不同
-
xiaozhi
-
1. 交换变量通常交换两个变量的方法需要一个额外的临时变量,来看看例子:leta=1;
letb=2;
lettemp;
temp=a;
a=b;
b=temp;
a;//=>2
b;//=>1temp是一个临时变量,它先保存a的值。然后把b的值赋值给a,接着将temp值赋给b。如果使用解构的方式会更简单,不需要什么鬼的temp变量。leta=1;
letb=2