(children)
| 8639 | |
| 8640 | //检测key是否有重复 |
| 8641 | function checkDuplicateKeys(children) { |
| 8642 | var seenKeys = {}; |
| 8643 | for (var i = 0; i < children.length; i++) { //循环子节点 |
| 8644 | var vnode = children[i]; //获取子节点 |
| 8645 | var key = vnode.key; //获取子节点的key |
| 8646 | if (isDef(key)) { //判断key是否有定义过 |
| 8647 | if (seenKeys[key]) { //如果定义过则发出警告 |
| 8648 | warn( |
| 8649 | //检测到重复键:“+ key +”。这可能会导致更新错误。 |
| 8650 | ("Duplicate keys detected: '" + key + "'. This may cause an update error."), |
| 8651 | vnode.context |
| 8652 | ); |
| 8653 | } else { |
| 8654 | //标志key 状态是 true |
| 8655 | seenKeys[key] = true; |
| 8656 | } |
| 8657 | } |
| 8658 | } |
| 8659 | } |
| 8660 | |
| 8661 | // 查找旧的vnode key |
| 8662 | function findIdxInOld(node, oldCh, start, end) { |
no test coverage detected