双越老师好!能否再大致说一下vnode里的 key大致是什么呢?

来源:8-4 vdom和diff是实现React的核心技术

慕无忌0473372

2021-03-01

双越老师好!我先看的react部分,看到这里又回去vue看了vnode diff部分,不过还是没大搞清楚key到底是什么。key也是类似tag每个vnode上都有吗?为什么key和tag相同就认为是相同节点呢?tag是只能确认类型一样对吧?比如p和p div和div?那key是起决定作用吗?key到底是什么东西呢?react的vnode的key也是一样的对吗?那这个key和我们在react里map array时候写的key是一个东西对吗?

写回答

2回答

双越

2021-03-01

你先不要问这么多,我数了数你一共提了 8 个问题,问的越多你就越混乱,我也不好解答。

我们就回归到最初的使用问题上:React 中的循环,和 Vue 中的 v-for 都必须有一个 key ,这个你应该清楚吧?

如果你不写 key ,就造成什么不良的后果,你也了解吧?

先把这两个问题搞清楚,然后奔着这个目的去(其实 vue React 也是刻意这么设计的),你应该能想明白你的问题了。

1
2
双越
回复
慕无忌0473372
是的。
2021-03-01
共2条回复

慕后端8117318

2021-03-01

可以这样理解吗?不加索引号相当与key,就和找目录中的内容一样,没了key的作用,内容渲染定位混乱

1
1
慕无忌0473372
谢谢!感觉好像就是key类似id
2021-03-01
共1条回复

2024版 前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4663 学习 · 1644 问题

查看课程