V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cutemurphy2888
V2EX  ›  React

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

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

    函数组件也可以调 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 的参数)
    bojackhorseman
        4
    bojackhorseman  
       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   ·   实用小工具   ·   5681 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:40 · PVG 09:40 · LAX 17:40 · JFK 20:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.