搭建项目
npx @umijs/create-umi-app
创建项目- npm run start 运行项目
核心路由
目录位置
- 只修改pages文件夹下文件即可,路由自动生成
- 组件另行建立component文件夹存放,不要写在pages里面,理由你们应该也懂
- 这个umi最好是先建立好所有路由文件再写内容,不然会有点麻烦
路由
- 要想让框架自动识别路由,就删除src下的.umirc.ts里面的routers,然后重启项目即可
- 子路由嵌套
- 建立文件夹,文件夹命名就是路由父级名称
- 文件夹内建立一个_layout.tsx文件,这个文件就是父级路由内容
- 文件夹内所有其他文件都是这个_layout.tsx的子集文件
- 在_layout.tsx内写{this.props.children}就可以渲染子文件内容了
- 路由守卫
- wrappers:[] 数组内写路径
- 在路径文件里面直接抛出一个方法,里面写逻辑
- 如果权限判断非,使用redirectTo()方法进行重定向
- 如果权限判断是,可以直接返回<div>{props.children}</div>
- 路由跳转
- 引入history从umi里 使用方法跟原生react方法一样
- 引入Link从umi里 使用方法也跟原生一样 to=‘’ 进行跳转
- 路由api
- <Prompt />
- 属性 message 确认离开 参数可以是函数或字符串
- location => return location.pathname !== '' / " ? true : `确定离开去首页么`
- 属性 when 确认当前用户状态判断是否给予提示框 (一般用在表单填写中
- 其他的都是些无关紧要的东西,想了解可以移步官方文档
umi样式
- umiJS会自动识别CSS Modules 的使用,只有你把它当做CSS Modules 用时才是 CSS Modules
- 想了解CSS Modules是什么的可以看我文档
- https://www.cnblogs.com/lrqcx/p/12821588.html
- 也可以去查看阮一峰大神的文档
- umiJS内置支持 less,不支持sass跟stylus,有需求可以通过配置 chainWebpack或者 umi插件的形式支持