所以自定义 hook 可以当函数组件来用嘛 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cutemurphy2888
V2EX    React

所以自定义 hook 可以当函数组件来用嘛

  •  
  •   cutemurphy2888 2022-11-26 14:22:12 +08:00 2705 次点击
    这是一个创建于 1117 天前的主题,其中的信息可能已经有所发展或是发生改变。

    函数组件也可以调 hook 也可以调自定义 hook 自定义 hook 也可以调其他 Hook 也可以调内置的 hook

    自定义 hook 也引入一些 ui components`

    8 条回复    2022-11-27 14:28:35 +08:00
    shakukansp
        1
    shakukansp  
       2022-11-26 14:54:55 +08:00
    react 不是讲究一个 ui 也是在写 js ?
    那你为什么要把 js 和组件分开讨论
    cutemurphy2888
        2
    cutemurphy2888  
    OP
       2022-11-26 15:03:52 +08:00
    @shakukansp 自定义 hook 本身就强调 共享逻辑 没有说要共享 ui 或者 共享带逻辑的 ui`

    本来就是分开的。
    shenyu1996
        3
    shenyu1996  
       2022-11-26 22:07:40 +08:00
    理论上可以 是不是组件,取决于使用的时候是直接执行函数,还是使用 jsx 的方式(也就是作为 createElement 的参数)
    dumbass
        4
    dumbass  
       2022-11-26 22:31:59 +08:00 via iPhone
    自定义 hook 可以返回组件
    ragnaroks
        5
    ragnaroks  
       2022-11-27 00:56:03 +08:00
    可以,但是最好不要这样,hook 应当是纯逻辑,如果有外部依赖( DOM 、或者你所谓的组件)应当以参数的形式提供
    ragnaroks
        6
    ragnaroks  
       2022-11-27 00:57:16 +08:00
    const render = useErrorCheck(request,ErrorElement,SuccessElement);

    return <div>{render()}</div>;
    cutemurphy2888
        7
    cutemurphy2888  
    OP
       2022-11-27 11:17:49 +08:00
    @ragnaroks 自定义 hook 自己引入 ui component 不行?
    ragnaroks
        8
    ragnaroks  
       2022-11-27 14:28:35 +08:00
    @cutemurphy2888 上面已经做出解答“可以,但是最好不要这样,hook 应当是纯逻辑”,如果你就是想与 react
    最佳实践对抗(比如我自己用 dotnet 就是想与 MSS 对抗)那也完全用你自己的方式。但是绝大多数人都是按照官方的方式使用,你这样不能与他人协作,如果是你自己一个人的练手项目你想怎么写都可以。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2490 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 15:46 PVG 23:46 LAX 07:46 JFK 10:46
    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