用户中心项目学习记录

看代码发现的问题

  1. 为啥面试鸭源码里面的导入是import { history } from '@@/core/history'; 这样导入history,而不是import { history } from 'umi';。我看官方文档上也是这样导入的啊

答:问AI,AI说从运行时里获取,会少一些附加的东西。便于优化,我倒想看看鱼皮怎么说

直接从 umi 导入 从 umi 运行时导入 主要区别 1. 加载路径 umi: 通过 Umi 框架的统一导出,会经过额外的封装 @@/core/history: 直接从运行时文件加载,更直接 2. 性能影响 umi: 可能会引入更多不必要的依赖 @@/core/history: 只导入 history 相关代码,体积更小 3. 类型提示 umi: 类型定义可能不够精确 @@/core/history: 能获得更准确的类型提示 4. 查看实际实现 从 history.ts 的代码可以看出: 建议使用方式 推荐使用 @@/core/history 更直接 性能更好 类型提示更准确 什么时候用 umi 只在需要使用 Umi 其他功能时一起导入 不关心性能优化的场景
  1. 后端的spring session=1000 这个我没搞清楚是啥意思。得看看鱼皮的笔记啥的,暂时不知道是怎么生效的 看看spring官方文档。

  2. 今天看完,明天研究部署

心得

  1. 有个react-dev-inspector库,在调试react项目时很好用。使用键盘按下快捷键就可以直接从页面跳转到代码,放在Layout文件夹下
Layout.tsx
import { Inspector } from 'react-dev-inspector';

const InspectorWrapper = isDev ? Inspector : React.Fragment;

<InspectorWrapper keys={['control', 'shift', 'command', 'c']} disableLaunchEditor={false}>
      // 其他组件
</InspectorWrapper>
  1. react-helmet-async这个库可以修改一些meta标签,比如title等。
Layout.tsx
import { Helmet, HelmetProvider } from 'react-helmet-async';

  <HelmetProvider>
    <Helmet>
        <title>面试鸭 - {SLOGAN}</title>
    </Helmet>
  </HelmetProvider>