umi入门学习

 umi为前端开发框架

官网

1.安装umi

npm install umi -g

直接创建文件夹 umiProject,cd进入后直接操作:

创建页面

umi g page index

启动服务器

umi dev

项目启动后,目录结构如下:

 运行后:

内部样式使用均为导入css文件,使用styles.类名进行访问,在添加样式时,采用类样式添加。

路由是自动配置的,如果需要嵌套路由什么的,可以直接加文件夹进行嵌套

具体路由配置也可以在.umi的route.js文件内实现

动态路由

[id$]开头的文件或目录  

如下图:

[id$].js文件

import styles from './[id$].css'

export default function Page(props) {
  return (
    <div>
      <h1 className={styles.title}>
        <h1>Page user</h1>
        <p>{props.match.params.id}</p>
      </h1>
    </div>
  );
}

[id$].css文件

.title {
  background: rgb(222, 154, 242);
}

访问路由不需要配置,直接修改访问路径即可

2.路由跳转方式

两种方式:1.命令  2.link

先查看实例文件

 _layout.js是作为users的默认路由,嵌套在其他路由的外层

示例如下:

点击tom之后:

 这些都不重要,重点在于点击然后页面跳转。

这个是users下的index.js文件

// 这个是初始化页面
import React from 'react';
import styles from './index.css';
import {Link, history} from 'umi';
 
export default function Page() {
  const users = [{id: 1,name: "tom"}]
  return (
    <div className={styles.title}>
      <h1>Page users list</h1>
      <ul>
        {/* 两种跳转方式 */}
        {/* 方式1 */}
        {/* {users.map(users=><li key={users.id}>
          <Link to={`/users/${users.id}`}>{users.name}</Link>
        </li>)} */}
        
        {/* 方式2 */}
        {users.map(users=><li key={users.id} 
        onClick={()=> history.push(`/users/${users.id}`)}>{users.name}</li>)}
      </ul>
    </div>
  );
}

3.配置式路由

在根目录添加config/config.js文件

// 添加配置文件后约定的路由失效
export default {
  routes: [
    {path : "/", component: "./index"}, //路径相对于pages
    {
      path: "/users",
      component: "./users/_layout",
      routes: [
        { path: "/users", component: "./users/index"},
        { path: "/users/:id", component: "./users/[id$]"},
      ]
    }
  ]
}

4.路由守卫

具体实现

在config.js文件内设置about路由守卫:

然后 新建routes/PrivateRoute.js文件

import {Redirect} from "umi";

export default props => {
  // 50%概率
  console.log("Math.random()",Math.random());
  if(Math.random() > 0.5){
    return <Redirect to="/login"/>
  }
  return (
    <div>
      {props.children}
    </div>
  )
}

上述代码表示:可能登录成功,成功进入about,不成功 重定向到login页

新建个login文件,文件目录如下:

5.使用antd

 安装antd

npm install antd -S

添加 @umijs/preset-react --dev :(这个需要在管理员操作内安装)

yarn add @umijs/preset-react --dev

安装完成后直接使用:

import {Button} from 'antd';


<Button type="primary">登录</Button>

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值