use ref比声明变量的优势在哪

78 阅读1分钟

stackoverflow.com/questions/6…

mlog.club/article/532…

  handleOpenOperationRecord.current = (openTab?: OpenTab) => {
    openOperationRecordDrawer({
      // TODO options 改为后端下发
      opOptions: getOptions(opPrivilegeCodes, isCrossBorder, 'op'),
      riskOptions: getOptions(riskPrivilegeCodes, isCrossBorder, 'risk'),
      openTab,
    });
  };

     const handleOpenOperationRecord = (openTab?: OpenTab) => {
     openOperationRecordDrawer({
       opOptions: getOptions(opPrivilegeCodes, isCrossBorder, 'op'),
       riskOptions: getOptions(riskPrivilegeCodes, isCrossBorder, 'risk'),
       openTab,
     });
   };

对比上下两种写法,都是正确的:第一种,把handleOpenOperationRecord传给子组件,子组件不会因为他的current变化而刷新。第二种,如果handleOpenOperationRecord被重新赋值,那么子组件会发生相应的变化