一道前端面试题:请求一个 github 用户的 follower,并且点击某个 follower,请求他的 follower,用 react 来写代码 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
ericgui
V2EX    程序员

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

  •  1
     
  •   ericgui 2021 年 12 月 14 日 3404 次点击
    这是一个创建于 1564 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    然后有很多 follower

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

    每一级都要有缩进

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

    第 1 条附言    2021 年 12 月 14 日
    刚才写出来了:

    https://github.com/medmin/github-followers-tree-view


    其实我写了递归,只是我当时一下子懵了,非要维持并更新一个超级大的 tree ,但刚才想明白了,这样没必要


    所以并没有写完,但我也拿到了下一轮面试,然而我已经拿到了其他公司 offer ,就拒了他们
    第 2 条附言    2021 年 12 月 14 日
    请求 follower 的 url : https://api.github.com/user/{username}/followers
    第 3 条附言    2021 年 12 月 14 日
    正确的 url:

    https://api.github.com/users/{username}/followers
    22 条回复    2021-12-15 01:59:01 +08:00
    kkocdko
        1
    kkocdko  
       2021 年 12 月 14 日 via Android
    是不能用组件库么?
    ericgui
        2
    ericgui  
    OP
       2021 年 12 月 14 日
    @kkocdko 手写
    Biwood
        3
    Biwood  
       2021 年 12 月 14 日
    核心应该是写个递归组件,没有很难吧
    ch2
        4
    ch2  
       2021 年 12 月 14 日
    treeView?
    DrakeXiang
        5
    DrakeXiang  
       2021 年 12 月 14 日
    为啥这个 url 没用哇
    Mohanson
        6
    Mohanson  
       2021 年 12 月 14 日
    不是用嵌套 <li> 的方式就能搞定么?
    shenqi
        7
    shenqi  
       2021 年 12 月 14 日
    ,,,这不是很简单吗。。。
    看完题目就大概有思路了,45 分钟不考虑样式只考虑缩进,有啥难的?
    ericgui
        8
    ericgui  
    OP
       2021 年 12 月 14 日
    @Biwood 是递归,我写出递归了,但当时面试的时候吧,没想明白,非得要构建一个大大的 tree ,但其实仅仅是这个要求的话,没必要构建一个大大的 tree

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

    sorry
    shenqi
        12
    shenqi  
       2021 年 12 月 14 日
    页面渲染角度没递归的说法,只是存储数据存成 children 而已。
    具体后面的 follower 还能点击 button 获取数据,那就是一层新的调用而已,不是递归,做好指针指向就行。
    ericgui
        13
    ericgui  
    OP
       2021 年 12 月 14 日   1
    shenqi
        14
    shenqi  
       2021 年 12 月 14 日
    渲染子集确实需要递归,想漏这个点了。
    vance123
        15
    vance123  
       2021 年 12 月 14 日
    试着写了一个
    ```
    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>
    )
    }
    ```
    milkzizi
        16
    milkzizi  
       2021 年 12 月 14 日
    递归组件用 react ,vue 都很好实现,不用框架应该咋实现?
    ericgui
        17
    ericgui  
    OP
       2021 年 12 月 14 日
    @wtf12138 看我上面给的 github 链接

    面试还是需要的手写的
    nznd
        18
    nznd  
       2021 年 12 月 14 日   2
    想跑下代码 install 一看 1484 个包 至于吗...
    yikyo
        19
    yikyo  
       2021 年 12 月 14 日 via iPhone
    组件 A 接受参数 username ,展示该 username 的 follower ,点击按钮请求数据,该数据映射成组件 A 的列表

    我没理解错题目吧
    yikyo
        20
    yikyo  
       2021 年 12 月 14 日 via iPhone
    刚看到#15 的回答,跟我理解一样
    ericgui
        21
    ericgui  
    OP
       2021 年 12 月 15 日
    @nznd nodejs 不就这鸟样嘛
    ericgui
        22
    ericgui  
    OP
       2021 年 12 月 15 日
    @yikyo 你跑一下我的代码吧,试试吧,面试的时候有例子,但是一个视频,我这没法发视频
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2836 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 12:08 PVG 20:08 LAX 05:08 JFK 08:08
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86