ice icon indicating copy to clipboard operation
ice copied to clipboard

页面级别 store

Open zhangfujin opened this issue 1 year ago • 2 comments

Summary | 概述

在页面级别 store 使用遇到的问题 1、routes.js,所有的页面引入都要在这个文件中引入。如果通过其他文件引入则页面级 store 使用不了,报错。 2、routes.js 中使用别名的方式引入页面,在window 系统中会报错

Motivation | 背景

1、对于问题1。应用会有很多页面。如果全都在 routes 中引入会导致该文件造成臃肿

Usage example | 使用示例

No response

Detailed design | 方案设计

如:我的页面有20个,会分成4类页面。分别用4个文件表示。 在routes.js 中分别从4个文件中引入

Additional context | 额外信息

No response

zhangfujin avatar May 31 '23 03:05 zhangfujin

文字描述不够清晰,最好配合部分代码

ClarkXia avatar May 31 '23 13:05 ClarkXia

一、对于第一个问题: 1、如下目录

│___src /          
│    │──  pages /       
│    │       └──pageA / 
│    │              └── index.jsx
│    │──  route-configs /                
│    │       └── routeA.js              
│    │── routes.js

2、routeA.js 中的内容如下

import { lazy } from 'react';
const pageA= lazy(() => import('./pages/pageA'));
export default [
   {
      path: '/pageA',
      title: 'pageA',
      component: PageA
   }
];

3、routes.js 中的内容如下

import routerA from ’./route-configs‘
export default [
  ...routerA
];

如上述代码。当我配置好 pageA 页面的页面级的 store 运行起来会报错。如果我把 src/route-configs/routeA.js 中的内容完全放到 src/routes.js 中,如下 src/routes.js 的修改,修改好后页面级 store 就可以正常使用了

import { lazy } from 'react';
const pageA= lazy(() => import('./pages/pageA'));
export default [
   {
      path: '/pageA',
      title: 'pageA',
      component: PageA
   }
];

二、对于上面一的示例 src/routes.js 文件中,使用别名的方式导入,在window系统中页面级的store 会报错,mac 正常使用

import { lazy } from 'react';
const pageA= lazy(() => import('@/pages/pageA'));  // 这里使用别名 ( @ ) 的方式导入
export default [
   {
      path: '/pageA',
      title: 'pageA',
      component: PageA
   }
];

三、当我把页面 src/pages/pageA 的目录改成 src/pages/page-a 页面的文件夹用横线 “-” 连接起来,页面级的 store 也是不能正常使用,会报错

上面问题的报错全都是报这个错误 image

zhangfujin avatar Jun 01 '23 02:06 zhangfujin