umi+Ant Design Mobile+rem搭建移动端H5框架

16 篇文章 0 订阅

1.创建项目(我用的umi4)

pnpm dlx create-umi@latest

2.安装Ant Design Mobile

pnpm add antd-mobile
pnpm add antd-mobile-icons //安装Icon图标

3.安装postcss-px-to-viewport

pnpm add -D postcss-px-to-viewport

4.配置 /.umirc.ts

import path from 'path';
import { defineConfig } from 'umi';
import routes from './routes';

export default defineConfig({
  ...routes,
  npmClient: 'pnpm',
  proxy: {
    '/api': {
      target: '需要代理的地址',
      changeOrigin: true,
      pathRewrite: { '^': '' },
    },
  },
  alias: {
    '@': path.resolve(__dirname, 'src'),
  },
  extraPostCSSPlugins: [
    require('postcss-px-to-viewport')({
      unitToConvert: 'px',
      viewportWidth: 320,
      unitPrecision: 5,
      propList: ['*'],
      viewportUnit: 'vw',
      fontViewportUnit: 'vw',
      selectorBlackList: [],
      minPixelValue: 1,
      mediaQuery: false,
      replace: true,
      exclude: [],
      landscape: false,
      landscapeUnit: 'vw',
      landscapeWidth: 568,
    }),
  ],
});

5.路由

//index.tsx
import { defineConfig } from 'umi';
export default defineConfig({
  routes: [
    {
      path: '/',
      redirect: '/home',
    },
    { path: '/home', component: './home' },
    { path: '/profile', component: './profile' },
    { path: '/detail', component: './detail' },
  ],
});

//index.less
.tabbar {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
}

6.页面配置(/src/layouts/index.tsx)

import { Badge, TabBar } from 'antd-mobile';
import { AppOutline, UserOutline } from 'antd-mobile-icons';
import { history, Outlet, useLocation } from 'umi';
import styles from './index.less';

export default function Layout(props) {
  const location = useLocation();
  const { pathname } = location;
  console.log('pathname', pathname);

  const tabsShow: string[] = ['/home', '/profile'];
  const tabs = [
    {
      key: '/home',
      title: '首页',
      icon: <AppOutline />,
      badge: Badge.dot,
    },
    {
      key: '/profile',
      title: '我的',
      icon: <UserOutline />,
    },
  ];
  if (!tabsShow.includes(pathname)) {
    return <Outlet />;
  }
  return (
    <div className={styles.navs}>
      <Outlet />
      <div className={styles.tabbar}>
        <TabBar safeArea onChange={(value) => history.push(value)}>
          {tabs.map((item) => (
            <TabBar.Item key={item.key} icon={item.icon} title={item.title} />
          ))}
        </TabBar>
      </div>
    </div>
  );
}

5.请求拦截

/src 下新建app.tsx
 /*
 * @Author: muge
 * @Date: 2021-12-29 18:39:27
 * @LastEditors: Please set LastEditors
 * @LastEditTime: 2021-12-30 17:11:32
 */
import { RequestConfig } from 'umi';
const token='JWT ...'
const requestInterceptor = (url: string, options: any) => {
  options.headers = {
    Authorization: token,
  };
  options.interceptors = true;
  return {
    url,
    options,
  };
};
export const request: RequestConfig = {
  requestInterceptors: [requestInterceptor],
};

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
umi 是一个基于 react 的前端开发框架,它提供了一些方便的工具和规范,帮助我们更快地搭建和部署移动端 web 项目。而 antd design 是一个优秀的 UI 组件库,它提供了丰富的组件,能够满足我们在移动端 web 项目中的各种需求。 首先,我们可以使用 umi 来初始化一个移动端的项目。umi 提供了脚手架工具,可以帮助我们快速创建一个基本的项目结构。通过命令行工具,我们可以选择使用 umi 内置的模板和插件,来搭建一个符合我们需求的移动端项目。 接着,我们可以使用 antd design 来构建我们的移动端页面。antd design 提供了丰富的 UI 组件,如导航栏、按钮、表单等等,这些组件都经过了精心设计和优化,可以帮助我们快速构建漂亮而且功能丰富的移动端页面。我们可以通过引入 antd design 的组件库,然后按照官方文档的指引使用这些组件,实现我们的页面功能。 在搭建项目时,umi 提供了一些功能和规范,例如路由配置、状态管理等。我们可以使用 umi 提供的路由功能来管理页面之间的跳转和传参,通过 umi 的状态管理功能可以更好地管理组件的状态和数据。同时,umi 还支持按需加载和自动优化等功能,能够提高项目的加载速度和性能。 总的来说,umi antd design react 搭建移动端 web 项目是一个很便捷和高效的选择。umi 提供了一个规范的开发框架antd design 提供了丰富的 UI 组件,它们的结合可以帮助我们更快速地构建移动端 web 项目。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值