一道前端面试题:请求一个 github 用户的 follower,并且点击某个 follower,请求他的 follower,用 react 来写代码

2021-12-14 11:58:44 +08:00
 ericgui

请求 follower 的 url : https://api.github.com/user/{username}/following

你首先在 input 里输入任何一个用户名,比如axross,请求这个用户的 follower ,

然后有很多 follower

每个 follower 旁边应该有个 button ,点击一下,会请求这个 follower 的 follower

每一级都要有缩进

这个还把我难住了,我靠,这个 45 分钟内能写出来吗?

2855 次点击
所在节点    程序员
22 条回复
kkocdko
2021-12-14 12:03:29 +08:00
是不能用组件库么?
ericgui
2021-12-14 12:04:02 +08:00
@kkocdko 手写
Biwood
2021-12-14 12:19:51 +08:00
核心应该是写个递归组件,没有很难吧
ch2
2021-12-14 12:20:27 +08:00
treeView?
DrakeXiang
2021-12-14 12:24:52 +08:00
为啥这个 url 没用哇
Mohanson
2021-12-14 12:29:42 +08:00
不是用嵌套 <li> 的方式就能搞定么?
shenqi
2021-12-14 12:33:17 +08:00
,,,这不是很简单吗。。。
看完题目就大概有思路了,45 分钟不考虑样式只考虑缩进,有啥难的?
ericgui
2021-12-14 12:35:15 +08:00
@Biwood 是递归,我写出递归了,但当时面试的时候吧,没想明白,非得要构建一个大大的 tree ,但其实仅仅是这个要求的话,没必要构建一个大大的 tree

刚才写出来了
ericgui
2021-12-14 12:36:07 +08:00
@shenqi 我也知道递归,但当时一下子就懵了,非得要不断更新一个超级大的 tree ,但刚才研究了一下,实际上没必要。
ericgui
2021-12-14 12:39:07 +08:00
@DrakeXiang 中间花括号里的 username 要替换为你要查找的用户的 username
ericgui
2021-12-14 12:41:08 +08:00
@DrakeXiang 请求 follower 的 url : https://api.github.com/user/{username}/followers

sorry
shenqi
2021-12-14 12:42:07 +08:00
页面渲染角度没递归的说法,只是存储数据存成 children 而已。
具体后面的 follower 还能点击 button 获取数据,那就是一层新的调用而已,不是递归,做好指针指向就行。
ericgui
2021-12-14 12:42:13 +08:00
shenqi
2021-12-14 12:44:48 +08:00
渲染子集确实需要递归,想漏这个点了。
vance123
2021-12-14 14:10:49 +08:00
试着写了一个
```
function FollowerTree({ username }) {
const [followers, setFollowers] = useState([])
async function fetchFollower() { ... }
return (
<div>
{username} <button onClick={fetchFollower} />
{followers.length > 0 &&
<ul>
{followers.map(
name => <li>
<FollowerTree username={name} key={name} />
</li>
)}
</ul>
}
</div>
)
}
```
wtf12138
2021-12-14 14:42:18 +08:00
递归组件用 react ,vue 都很好实现,不用框架应该咋实现?
ericgui
2021-12-14 14:50:40 +08:00
@wtf12138 看我上面给的 github 链接

面试还是需要的手写的
nznd
2021-12-14 17:44:19 +08:00
想跑下代码 install 一看 1484 个包 至于吗...
yikyo
2021-12-14 23:08:38 +08:00
组件 A 接受参数 username ,展示该 username 的 follower ,点击按钮请求数据,该数据映射成组件 A 的列表

我没理解错题目吧
yikyo
2021-12-14 23:14:19 +08:00
刚看到#15 的回答,跟我理解一样

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/822089

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX