lih

Results 5 comments of lih

### 使用`[email protected]`后存在同样的问题 我遇到了同样的问题,但降级webpack后**问题依然存在**,顺着const的思路找下去,在**打包后的vendor**文件中发现了两个包含const语法的库`[email protected]`与`[email protected]`。其中dom7是swiper的依赖,由此可知是新版的swiper在打包时混入了es6的语法,`[email protected]`使用了swiper4所以导致了这个问题 #### 解决方法:在`babel-loader`的include中添加需要额外解析的类库 ```javascript { test: /\.js$/, loader: 'babel-loader', include: [ ..., resolve('node_modules/dom7/dist/dom7.modular.js'), resolve('node_modules/swiper/dist/js/') ] } ``` 大家可以在尝试build之后去打包文件中搜索含有es6语法的第一条语句,查看语句上方所在库的入口文件地址 ``` // CONCATENATED MODULE: ./node_modules/xxx ``` `./node_modules/xxx`就是需要额外处理的文件,把它添加到include就可以啦

@hilongjw Seems like the `Lazy component` dosen't work at all

> 没看懂为啥要操作 when 属性? when为true才会开启缓存不是么,我这边只需要在指定的几个链接跳转之后缓存它,别的时候不需要

> 默认是 true ,你的需求也可以这样实现,会简单一些 > > ```js-jsx > location.pathname === 你的路由地址}> > ``` > > 如果是动态路由的话可以考虑使用 router 自带的 match 方法 意思是从页面层级做缓存是吗,列表页很多的话我担心内存占用会是个问题,因为这个系统页面还是不少的 现在是只对列表组件做了封装,考虑是只在列表打开子页面之前缓存它,去别的页面就不管了

> 实现的功能和你现在想做的一致,仅缓存指定的路由,只是不需要通过 setKeepAlive 这样的方式 感谢解答,从页面的层级去做缓存确实可以解决现在的问题,不过页面跳转前对部分组件做精确缓存的场景还是有的,暂时不清楚这个问题到底是react-keepalive、umi-plugin-keep-alive还是umi造成的,如果这边没有想法的话,可以先关掉这个问题了