10 Meskjei

尚未进行身份认证

爱那么短 而回忆那么长

等级
TA的排名 2w+

React源码阅读—React.Children.map

文章目录React.map源码阅读React.jsReactChildren.jsmapChildren()mapIntoWithKeyPrefixInternal()getPooledTraverseContext()getPooledTraverseContext()对象池traverseAllChildren()releaseTraverseContext()traverseAllChild...

2019-08-21 13:01:12

React源码阅读—React.forwardRef

文章目录React.forwardRef源码React.forwardRef在有些时候我们想要操作子组件中的DOM节点,说到获取DOM节点,可能我们会第一时间想到ref。可是,如果我们是直接在子组件上写ref,获得的只是子组件,而不是子组件下的某个DOM节点。这个时候就可以通过React.forwardRef来实现。例如:子组件:constChild=React.forwardR...

2019-08-20 09:50:29

React源码阅读—React.createRef

文章目录ref的用法源码ref的用法在使用React的开发过程中,我们经常会需要获取挂载到网页上的DOM节点,为它绑定事件或者是获取它的值(value)。那么这个时候我们就需要用到ref了。ref的用法有三种:第一种是传入一个字符串:<divref="div"></div>那么当节点渲染到页面上之后,通过this.ref.div就可以获取到这个节点对应的...

2019-08-20 09:05:13

React源码阅读--React.createElement和ReactElement

文章目录React.createElement源码ReactElementReact.createElement在React中,JSX语法糖都会被转换为React.createElement的形式。例如:<divid='div'>hello</div>会被转换为:React.createElement('div',{id:'div'},'hello')...

2019-08-19 23:40:01

JSX到JavaScript的转换

可能初次接触React的人会惊讶于为什么可以在JS文件中写HTML的语句,例如return<div>hello</div>。其实这种语法就是JSX,它实际上是一种语法糖。我们想“All-in-JS”,但是无奈HTML那样的标签语法更适合表示界面的结构与层次,于是人们便想出了JSX这种方法,即在JS中写标签,但是实际上最终编译时又会被转换为JavaScript。那么,被...

2019-08-19 22:04:51

react-redux入门

文章目录概念ProviderconnectmapStateToProps参数stateownProps返回值mapDispatchToProps概念React-Redux是Redux的官方React绑定库。它能够使你的React组件从Reduxstore中读取数据,并且向store分发actions以更新数据。ProviderReact-redux提供了Provider组件,能够使整个a...

2019-07-31 11:29:06

Redux入门

文章目录概念工作流程ActionReducerstorestore的创建概念React作为一个视图层框架,天然是不适合用来管理数据的。因为React框架中,父子组件的通信通过props(父向子传递),或者是回调函数(子向父传递)两种方式实现。若是只是父子组件之间的通信,实现起来还不算太麻烦,若是跨层级的通信,则需要多个组件之间层层通信,实现起来不仅麻烦而且性能也不好。还有我们知道React...

2019-07-30 16:28:41

虚拟DOM为何出现以及性能问题

传统的前端编程方式是命令式编程,即直接操纵DOM,告诉浏览器该怎么干。这样的问题就是,大量的代码被用于操作DOM元素,且代码可读性差,可维护性低。而React、Vue这些数据驱动的前端框架的出现,将命令式编程变为了函数式编程,从而大幅提升代码的可读性、可维护性。这些框架纵然摒弃了直接操作DOM,我们只要关心数据的变动,DOM的操作由框架完成。但是这样做带来了一些性能问题。在最原始的情况下,框...

2019-07-24 15:42:53

React的PropTypes和DefaultProps

文章目录propTypesPropTypes的验证器基本的JS类型任何可以被渲染的元素react元素某个类的实例枚举类型指定多个类型指定某个类型的数组指定类型为对象且对象的属性是特定类型指定类型为对象且规定哪些属性必须有,哪些可以没有defaultPropspropTypespropTypes是React中组件的一个特殊属性。设置它,可以为组件的props属性进行类型的检查。要设置组件的pr...

2019-07-24 12:59:42

数据结构--冒泡排序

文章目录概念算法思想代码实现概念冒泡排序是一种交换排序。即两两比较待排序的关键字,并交换不满足次序要求的那对数,直到整个表都满足次序要求为止。算法思想两两比较序列中数字,若两者中前者比后者大,则交换两者位置。那么这样做的结果就是每一次交换后,最大的都会冒泡到了最后。也就是说,第一次冒泡到最后的是第一大的数,第二次则是第二大,以此类推。代码实现functionbubleSort(...

2019-07-22 12:05:51

数据结构--希尔排序

文章目录概念算法步骤代码实现概念希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位;希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分...

2019-07-22 09:09:06

数据结构--折半插入排序

所谓折半插入排序,可以理解为折半查找与直接插入排序的结合。直接插入排序需要待排序数字与有序数组逐个比较。而折半查找则可以减少比较的次数,从而较快的得到待排序数字应处的位置。functionbinaryInsSort(arr){if(!arr&&!arr.length){return-1;}for(leti=1,len=arr.length;i&lt...

2019-07-21 22:33:10

数据结构--直接插入排序

直接插入排序概念插入排序的基本思想是:在一个已排好序的记录子集的基础上,每一步将下一个待排序的记录有序地插入到已排好序的记录子集中,直到将所有待排记录全部插入为止。插入类排序的整个过程就如同打扑克的理牌过程类似,拿到一张牌然后在已排好序的序列中找到一个合适的位置将这张牌插入。functioninsSort(arr){if(!arr&&!arr.length...

2019-07-21 21:47:59

散列(Hash)表

文章目录概念定义构造散列函数的方法。直接定址法数字分析法平方取中法折叠法除留余数法随机数法处理冲突的方法开放定址法线性探测再散列平方探测再散列例子链地址法散列表的查找散列表的性能概念静态查找表和动态查找树表的共同特点是记录在表中的位置和它的关键字之间不存在一个确定的关系,查找的过程为给定值依次和关键字集合中各个关键字进行比较,查找的效率取决于和给定值进行比较的关键字个数。用这类方法表示的查找...

2019-07-15 11:39:17

数据结构--动态查找树表

文章目录二叉排序树概念查找算法插入算法删除算法被删除的节点时叶子节点被删除的节点只有左子树或只有右子树被删除的结点既有左子树,也有右子树查找性能的分析平衡二叉树概念构造平衡二叉树的方法性能分析二叉排序树概念二叉排序树或者是一棵空树或者是具有如下特性的二叉树:若它的左子树不空,则左子树上所有结点的值均小于根结点的值;若它的右子树不空,则右子树上所有结点的值均大于根结点的值;它的左、右...

2019-07-15 10:00:23

React--组件间抽象

在React组件构建的过程中,常常会有一类功能需要不同的组件公用的情况。此时就涉及到了抽象的问题。文章目录mixin封装mixin方法在React中使用mixinmixin的问题命名冲突增加复杂性高阶组件属性代理反向继承mixin所谓Mixin,就是讲一个模块混入到另一个模块之中,或是一个类中。事实上mixin就类似于多重继承。封装mixin方法functionmixin(obj,...

2019-07-14 21:14:21

组件间通信

文章目录父组件向子组件通信子组件向父组件通信回调函数利用自定义事件机制父组件向子组件通信React中数据的流动是单向的,父组件向子组件的通信是最常见的组件间通信形式,即父组件通过props传递子组件信息。例如:classAppextendsComponent{render(){return(<div><Cont...

2019-07-13 10:06:27

受控组件与非受控组件

文章目录受控组件更新state的流程例子非受控组件例子受控组件所谓受控组件就是每当表单的状态发生变化时,都会被写入到组件的state中,这种组件就被称为受控组件。在受控组件中,组件渲染出的状态与它的value或checkedprop相对应。React通过这种方式消除了组件的局部状态。更新state的流程可以通过在初始state中设置表单的默认值每当表单的值发生变化,调用onChan...

2019-07-13 00:10:27

React的事件系统

文章目录合成事件的绑定方式合成事件的实现机制事件委托自动绑定在React中使用原生事件原生事件和合成事件的混用React基于VirtualDOM实现了一个合成事件层,我们所定义的时间处理器会接受到一个合成事件对象的实例,它完全符合W3C标准,因此不会存在兼容性问题。同样支持事件的冒泡机制,所有的事件都自动绑定到最外层上(document)。如果需要访问原生事件对象,可以使用nativeEve...

2019-07-11 14:18:21

数据结构--静态查找表

文章目录顺序查找表----顺序查找法性能有序查找表----折半查找法静态查找表:仅作查询和检索操作的查找表。查找的方法取决于查找表的结构。由于查找表中的数据元素之间不存在明显的组织规律,因此不便于查找。为了提高查找的效率,需要在查找表中的元素之间人为地附加某种确定的关系,换句话说,用另外一种结构来表示查找表。顺序查找表----顺序查找法此处以存储结构为顺序表的顺序查找表为例。所谓顺序查...

2019-07-10 11:14:49

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。