docs: function diffChildren(parentFiber, children) {
      let oldFibers = parentFiber.children; // 旧的
      if (oldFibers) {
          parentFiber.oldChildren = oldFibers;
      } else {
          oldFibers = {};
      }
      let newFibers = fiberizeChildren(children, parentFiber); // 新的
      let effects = parentFiber.effects || (parentFiber.effects = []);
      let matchFibers = new Object();
      delete parentFiber.child;
      for (let i in oldFibers) {
          let newFiber = newFibers[i];
          let oldFiber = oldFibers[i];
          if (newFiber && newFiber.type === oldFiber.type) {
              matchFibers[i] = oldFiber;
              if (newFiber.key != null) {
                  oldFiber.key = newFiber.key;
              }
              continue;
          }
          detachFiber(oldFiber, effects);
      }
  
      let prevFiber,
          index = 0;
      for (let i in newFibers) {
          let newFiber = newFibers[i];
          let oldFiber = matchFibers[i];
          let alternate = null;
          if (oldFiber) {
              if (isSameNode(oldFiber, newFiber)) {
                  //&& !oldFiber.disposed
                  alternate = new Fiber(oldFiber);
                  let oldRef = oldFiber.ref;
                  newFiber = extend(oldFiber, newFiber);
                  delete newFiber.disposed;
                  newFiber.alternate = alternate;
                  if (newFiber.ref && newFiber.deleteRef) {
                      delete newFiber.ref;
                      delete newFiber.deleteRef;
                  }
                  if (oldRef && oldRef !== newFiber.ref) {
                      //  alternate.effectTag *= NULLREF;
                      effects.push(alternate);
                  }
                  if (newFiber.tag === 5) {
                      newFiber.lastProps = alternate.props;
                  }
              } else {
                  detachFiber(oldFiber, effects);
              }
              // newFiber.effectTag = NOWORK;
          } else {
              newFiber = new Fiber(newFiber);
          }
          newFibers[i] = newFiber;
          newFiber.index = index++;
          newFiber.return = parentFiber;
  
          if (prevFiber) {
              prevFiber.sibling = newFiber;
              newFiber.forward = prevFiber;
          } else {
              parentFiber.child = newFiber;
              newFiber.forward = null;
          }
          prevFiber = newFiber;
      }
      parentFiber.lastChild = prevFiber;
      if (prevFiber) {
          prevFiber.sibling = null;
      }
  }