UMI配置笔记

umi 学习笔记

跟着千峰视频学习umi相关内容的一些笔记,第一次发,有点乱

1、umi会根据pages目录自动生成路由配置,但是需要注释umirc.js中routes相关,否则自动配置不生效
export default defineConfig({
  nodeModulesTransform: {
    type: 'none',
  },
  // routes: [
  //   { path: '/', component: '@/pages/index' },
  // ],
  fastRefresh: {}
  }
);
2、[id].tsx实现动态路由
import React from 'react'
import { useParams } from 'umi'

interface IParams{
    id:string
}

export default function Detail(props:any) {
    const params=useParams<IParams>()
    console.log(params.id)
    return (
        <div>
            detail
        </div>
    )
}
3、嵌套路由文件路径要注意
4、路由拦截:用wrapper进行包装,创建一个父组件,没有token进行拦截
export default function Auth(props: any) {
    const tokenStr = localStorage.getItem ('token')
        console.log(tokenStr)
    if(localStorage.getItem('token')){
        
        return(
            <div>
                {props.children}
            </div>
        )
    }
    return <Redirect to="/login"/>
}
5、改成hash模式在umirc.js文件中
export default{
		history:{type:'hash'}
		}
6、利用mock模拟后端来编写接口,请求数据
export default {
    namespace:"city",//命名空间
    state:{
        cityName:"北京",
        cityId:"110100"
    },
    //同步
    reducers:{
        changeCity(prevState:any,action:any){
            console.log(action)
            return{
                ...prevState,
                cityName:action.payload.cityName,
                cityId:action.payload.cityId
            }
        }
    }
}
7、dva集成
  • 按目录约定注册model,无需手动app.model
  • 文件名即namespace,可以省去model导出的namespace
    key
  • 无需手写router.js,交给umi处理,支持model和component的按需加载
  • 内置query-string处理,无需手动解码和编码
  • 内置dva-loading和dva-immer,其中dva-immer需通过配置开启(简化reducer编写)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值