2019-02-09 回答大 O 符号在计算机科学中用来描述算法的时间复杂度。执行速度快且复杂性低的算法视为优秀的算法。算法的运行次数并不是每次都相同,大部分取决于所提供的数据。在某些情况下,他们执行的很快,但某些情况下,他们却执行的很慢(哪怕他们的数据是一样多)。以下示例中,我们假设基准时间为:1element=1msO(1)arr[arr.length-1]//1000elements=1ms 时间复
2019-02-21 回答 this 关键字是函数执行过程中用于表示上下文的对象。传统的常规函数可以使用 call()、apply()和 bind()方法来改变他们的 this 值。箭头函数会隐式的绑定 this,因此无论其上下文是否使用 call()进行设置,他的上下文引用都是其词法环境中的上下文。这有一些关于 this 是如何工作的常见例子:Objectliterals 如果使用对象本身调用其内部函数时,该函数的 thi
2019-02-22 回答主要目的是避免直接操作 DOM 并使应用程序的状态能够简单的和 UI 保持同步。此外,他们还提供了创建组件的功能,在有相似功能(具有细小区别)的时候就可以进行重复使用,这样每当需要更新在多个地方重用的组件结构时就可以避免多个地方的重复修改。像 jQuery 这样对 DOM 操作的库,应用程序的数据通常保存在 DOM 自身中,通常作为类名或者 data 的属性。操作 DOM 来更新 UI 涉及许多额外的步骤并
2019-02-24 回答虚拟 DOM(VDOM)是使用 JavaScript 普通对象来描述真实 DOM 的展现方式。这些对象具有描述真实 DOM 节点的属性,比如:节点名称,他的属性和子节点。<divclass="counter"><h1>0</h1><button>-</button><button>+</button></div> 上面的 DOM 元素使用虚拟 DOM 可以如下进行表示:{nodeName:"div"
2019-03-15 回答 Portals 提供了一种很好的将子节点渲染到父组件外部 DOM 层级中的 DOM 节点中的方式。ReactDOM.createPortal(child,container)第一个参数(child)是任意可渲染的 React 子元素,例如一个元素,字符串或片断。第二个参数(container)是一个 DOM 元素。加分回答通常从组件的 render 方法中返回的一个元素,该元素仅能装配到 DOM 节点