React 自定义钩子——返回一个数组与一个对象

React 自定义钩子——返回一个数组与一个对象

大多数编写的自定义钩子都是通过以下方式定义的:

 常量 useCustom = () => {  
 让 customVar = "";  
    
 // 一些逻辑...  
 返回 {  
 自定义变量  
 }  
 }

并在您的组件中被如下调用:

 常量 {customVar} = useCustom();

在这里,我们从 使用自定义 挂钩并使用对象解构来访问 自定义变量 .

但是,如果您注意到 react 或其他此类库提供的其他钩子,您会发现它们使用数组而不是对象解构。

 const [示例,setExample] = useState('example');

使用 {this} 与 [this] —

如果钩子返回一个数组,那么您可以自己命名变量。

如果钩子返回一个对象,那么您必须使用与钩子本身返回的相同的变量名称。

使用返回数组的钩子很可能是 每个组件可以多次使用 hook。 因此,我们需要能够多次实例化该钩子,但每个实例都有不同的名称。

请参见下面的示例:

 常量 [valA, setValA] = useState(0);  
 常量 [valB, setValB] = useState("");

在里面 使用自定义 钩子,我们被迫使用变量名 自定义变量 .

React 允许我们覆盖我们的对象变量名称,但它比使用数组返回需要更多的努力。这是上面的 使用状态 以对象返回形式重写的示例:

 常量 {state: val, setState: setVal} = useState(0);  
 const {状态:数据,setState:setData} = useState(“”);

为了清楚起见,这就是 使用自定义 钩子看起来像是重写为使用数组返回:

 常量 {customVar: customName} = useCustom(); //对象返回  
 常量 [customName] = useCustom(); //数组返回

结论

在创建自定义钩子时,请记住:

  • 如果我们要在单个组件中使用挂钩的多个实例,则使用数组返回。
  • 如果我们的组件只有 1 个(或少数几个实例)挂钩,请使用对象返回。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/22980/02020910

posted @ 2022-09-09 10:02  哈哈哈来了啊啊啊  阅读(324)  评论(0编辑  收藏  举报