Vite 2.x + React + Zarm + Less + React Router v6 + Axios + flexible.js 搭建前端 H5 开发环境

简介: Vite 2.x + React + Zarm + Less + React Router v6 + Axios + flexible.js 搭建前端 H5 开发环境

项目地址

源码:kaimo-cost-h5



环境准备

兼容性注意Vite 需要 Node.js 版本 >= 12.0.0。然而,有些模板需要依赖更高的 Node 版本才能正常运行,当你的包管理器发出警告时,请注意升级你的 Node 版本。

我的 node 版本是 v12.13.0,npm 版本是 6.12.0



1、初始化 Vite + React 项目


直接用官方提供的模板,一键生成项目:项目命名为 kaimo-cost-h5

# npm 6.x
npm init @vitejs/app kaimo-cost-h5 --template react


60a67103492f43e194031857fadaa52b.png


然后进入项目安装依赖,就可以启动服务了

cd kaimo-cost-h5
npm install
npm run dev


92e49945b3aa41e990c419658df244c0.png


2、添加 react-router-dom 路由


安装依赖

执行下面命令安装依赖

npm i react-router-dom -S

3aefcf845ed4416f9e2a565df4e2ab0f.png


添加页面组件

在项目 src 目录下新增 container 目录用于放置页面组件,再在 container 下新增两个目录分别是 IndexAbout


80c8223c498f4a669dd94b434d73e365.png


About/index.jsx 添加如下内容:

import React from 'react'
export default function Index() {
  return <div>
    kaimo 的 about 页面
  </div>
}


Index/index.jsx 添加如下内容:

import React from 'react'
export default function Index() {
  return <div>
    kaimo 的 index 页面
  </div>
}


添加路由数组

新建 src/router/index.js 配置路由数组,添加如下内容:

import Index from '../container/Index'
import About from '../container/About'
const routes = [
  {
    path: "/",
    component: Index
  },
  {
    path: "/about",
    component: About
  }
];
export default routes


引入路由配置

修改 App.jsx 里的代码,引入路由配置,实现切换浏览器路径,显示相应的组件:

import React from 'react'
import { BrowserRouter, Routes, Route } from 'react-router-dom'
import routes from '../src/router'
function App() {
  return <BrowserRouter>
    <Routes>
      {
        routes.map(route => <Route key={route.path} path={route.path} element={<route.component />}></Route>)
      }
    </Routes>
  </BrowserRouter>
}
export default App


这里记得包裹一层 BrowserRouter,不然会报错 useRoutes() may be used only in the context of a <Router> component.

我们测试一下:

首先我们访问:http://localhost:3000/,没有问题


9dfd6243b390483c8371fbb0055e8a72.png


然后访问:http://localhost:3000/about,也没问题


80dbd5dd67b54196a9a6192fdb907665.png



3、添加 Zarm UI 组件库

安装依赖

npm install zarm -S


fcd3c6969dc54c9fb5af79e0ca326e33.png


使用

Zarm 快速上手


fee789a4835a4e7b9c55da930a9a349a.png

下面我们在 App.jsx 里添加代码:

import React from 'react'
import { BrowserRouter, Routes, Route } from 'react-router-dom'
import { ConfigProvider } from 'zarm';
import zhCN from 'zarm/lib/config-provider/locale/zh_CN';
import 'zarm/dist/zarm.css';
import routes from '../src/router'
function App() {
  return <BrowserRouter>
    <ConfigProvider locale={zhCN}>
      <Routes>
        {
          routes.map(route => <Route key={route.path} path={route.path} element={<route.component />}></Route>)
        }
      </Routes>
    </ConfigProvider>
  </BrowserRouter>
}
export default App


然后在 /container/Index/index.jsx 里添加按钮 Button 组件:

import React from 'react'
import { Button } from 'zarm';
export default function Index() {
  return <div>
    kaimo 的 index 页面
    <h3>
      按钮 Button 基本用法
    </h3>
    <Button>default</Button>
    <Button theme="primary">primary</Button>
  </div>
}


989e0593702746b2b670e3049ebd49a3.png



按需引入

我们执行 npm run build 打包时,发现 css 文件过于太大,有必要进行按需引入。

4b04efcdaacf4f03931a381c9366ad34.png


我们使用插件vite-plugin-style-import:按需导入组件库样式

注意:这里我们用 1.0.1 的版本,我试了一下 2.0.0 的发现报错。


7dd0729f74184ab5af4ba13a04ce5a18.png



npm i vite-plugin-style-import@1.0.1 -D


52014b6685b4483f979028e0240a7906.png


安装好之后,我们修改 vite.config.js

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import styleImport from 'vite-plugin-style-import'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    react(),
    styleImport({
      libs: [
        {
          libraryName: 'zarm',
          esModule: true,
          resolveStyle: (name) => {
            return `zarm/es/${name}/style/css`;
          }
        }
      ]
    })
  ]
})


再修改 App.jsx 里,去掉样式全局引入

import React from 'react'
import { BrowserRouter, Routes, Route } from 'react-router-dom'
import { ConfigProvider } from 'zarm';
import routes from '../src/router'
function App() {
  return <BrowserRouter>
    <ConfigProvider>
      <Routes>
        {
          routes.map(route => <Route key={route.path} path={route.path} element={<route.component />}></Route>)
        }
      </Routes>
    </ConfigProvider>
  </BrowserRouter>
}
export default App


然后我们在打包 npm run build,我们发现 css 打包后的体积少了很多。

5c1c22882a0441beb73945c4e0b6935b.png





目录
相关文章
|
2月前
|
编解码 前端开发 JavaScript
js react antd 实现页面低分变率和高分变率下字体大小自适用,主要是配置antd
在React中结合Ant Design与媒体查询,通过less变量和响应式断点动态调整`@font-size-base`,实现多分辨率下字体自适应,提升跨设备体验。
98 2
|
8月前
|
前端开发 JavaScript
除了使用Route组件,React Router还有其他方式处理404错误页面吗
除了使用Route组件,React Router还有其他方式处理404错误页面吗
226 58
|
8月前
|
前端开发
如何在React Router中定义404错误页面组件?
如何在React Router中定义404错误页面组件?
207 57
|
8月前
|
前端开发 UED
在React Router中,如何处理路由的404错误页面?
在React Router中,如何处理路由的404错误页面?
313 57
|
8月前
|
前端开发
如何在React Router中进行嵌套路由配置?
如何在React Router中进行嵌套路由配置?
415 57
|
8月前
|
前端开发
如何在React Router中进行路由重定向?
如何在React Router中进行路由重定向?
508 57
|
8月前
|
前端开发 网络架构
如何在React Router中传递参数?
如何在React Router中传递参数?
315 57
|
8月前
|
移动开发 前端开发 API
React Router的用法。
React Router的用法。
189 56
|
7月前
|
前端开发 JavaScript NoSQL
使用 Node.js、Express 和 React 构建强大的 API
本文详细介绍如何使用 Node.js、Express 和 React 构建强大且动态的 API。从开发环境搭建到集成 React 前端,再到利用 APIPost 高效测试 API,适合各水平开发者。内容涵盖 Node.js 运行时、Express 框架与 React 库的基础知识及协同工作方式,还涉及数据库连接和前后端数据交互。通过实际代码示例,助你快速上手并优化应用性能。

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    369
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    128
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    141
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    114
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    210
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    236
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    129
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    65
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    123
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    164