react-vite-antd环境下新建项目

这篇具有很好参考价值的文章主要介绍了react-vite-antd环境下新建项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 安装vite并创建一个react项目

使用 NPM:

npm create vite@latest

使用 Yarn:

 yarn create vite

使用 PNPM:

 pnpm create vite

1. 我使用的 yarn安装,基本配置项目名字, 框架react ,js

react-vite-antd环境下新建项目,react,react.js,前端

2. cd vite-react进入项目目录安装node包并启动项目

 yarn add install

加载之后使用启动命令yarn run dev
react-vite-antd环境下新建项目,react,react.js,前端
react-vite-antd环境下新建项目,react,react.js,前端

2. 安装引入Ant Design

  • 引入依赖(我用的yarn,没有安装的也可以使用npm,根据自己情况选择)

使用 npm:

 yarn add antd

使用 yarn:

npm install antd --save

安装完成:
react-vite-antd环境下新建项目,react,react.js,前端

  • 使用启动命令:yarn run dev 或者npm run dev

react-vite-antd环境下新建项目,react,react.js,前端
react-vite-antd环境下新建项目,react,react.js,前端

  • 清除App.jsx默认内容并引入antd

    1. 清空App.css和index.css文件中内容

    2. 修改App.jsx中内容

import { Button } from 'antd';
function App() {
  return (
    <>
        <Button type="primary">Button</Button>
    </>
  )
}
export default App

3. 页面显示:

react-vite-antd环境下新建项目,react,react.js,前端

3. 引入布局和菜单栏

react-vite-antd环境下新建项目,react,react.js,前端

1. 引入布局组件

1. 代码

import React, { useState } from 'react';
import './App.css'
import { Button,Sider,Layout,Header,Space } from 'antd';
const headerStyle = {
  textAlign: 'letft',
  color: '#fff',
  height: 64,
  paddingInline: 10,
  lineHeight: '64px',
  backgroundColor: '#7dbcea',
};
const contentStyle = {
  textAlign: 'center',
  minHeight: 120,
  lineHeight: '120px',
  color: '#fff',
  backgroundColor: '#108ee9',
};
const siderStyle = {
  textAlign: 'center',
  lineHeight: '120px',
  color: '#fff',
  backgroundColor: '#3ba0e9',
};
const App = () => {
  return (
      <Layout>
      <Sider style={siderStyle}>
      </Sider>
      <Layout>
        <Header style={headerStyle}>
        </Header>
        <Content style={contentStyle}>Content</Content>
      
      </Layout>
    </Layout>
  );
};
export default App;

报错:Uncaught SyntaxError: The requested module '/node_modules/.vite/deps/antd.js?v=d0b75d53' does not provide an export named 'Header' (at App.jsx:3:36)

是因为引入方式不对:修改成就可以了,官网有我没注意

import { Button, Layout, Space } from 'antd';
const { Header, Sider, Content } = Layout;

运行后发现多了默认样式外边距,修改默认样式

react-vite-antd环境下新建项目,react,react.js,前端
使用在App.css中添加下面代码,就解决了。

/* 更改默认样式 */
body {
    margin: 0;
}

react-vite-antd环境下新建项目,react,react.js,前端

2. 引入左侧菜单栏组件

✏️ 1. 代码(手写代码在最后)

react-vite-antd环境下新建项目,react,react.js,前端
react-vite-antd环境下新建项目,react,react.js,前端

📖 2. 运行后,点击按钮没反应

react-vite-antd环境下新建项目,react,react.js,前端

报错:warning.js:19 Warning: [antd: Menu] inlineCollapsed not control Menu under

是因为位置设置错误,在Sider标签上添加collapsed={collapsed}就可以了
react-vite-antd环境下新建项目,react,react.js,前端

📖 重新运行

react-vite-antd环境下新建项目,react,react.js,前端

react-vite-antd环境下新建项目,react,react.js,前端

3. 调整布局样式

✏️ 1. 新建src/views/index.jsx。把原来App.jsx文件内容转移到新建的src/views/index.jsx中, 对App修改如下。注意引入jsx文件名字要大写

react-vite-antd环境下新建项目,react,react.js,前端

📖 2. 运行后样式

react-vite-antd环境下新建项目,react,react.js,前端

4. 添加动态路由设置

1. 集中react-router对比

* React-Router:

是一个通用的路由库,适用于不同平台的 React 应用。 提供了一些router的核心API,包括Router, Route,
Switch等,但是它没有提供 DOM 操作进行跳转的API。

* React-Router-DOM:

而 React Router DOM 是 React Router 的 Web 版本,提供了与浏览器环境相关的路由组件和功能。 提供了
BrowserRouter,HashRouter , Route, Link等 API,可以直接操作DOM 的事件控制路由。如点击按钮。
React Router DOM 是在 React Router 基础上构建的,用于在 Web 应用中处理路由。它提供了与浏览器 URL
相关的功能,如基于浏览器历史记录的导航等。

* Reach Router:

它提供了类似于 React Router 的功能,但具有更简单的 API 和更好的可访问性支持。

2. 三种路由模式:HashRouter、BrowserRouter 和 MemoryRouter 都是 React Router 提供的路由组件

  1. HashRouter组件:路径上有"#",
    它使用 URL 的哈希部分(#)来管理路由。在使用 HashRouter 时,URL 中的哈希部分将被用作路由路径,不会触发浏览器的页面刷新。这种方式适用于静态网站或需要在不同环境中部署的应用。

  2. BrowserRouter组件:路径上没有"#"
    它使用 HTML5 的 History API 来管理路由。

  3. MemoryRouter:
    它将路由信息存储在内存中,而不是 URL 中。MemoryRouter 适用于在内存中管理路由状态,例如在测试环境中进行单元测试或在非浏览器环境中使用 React Router。

2. 安装/使用 React-Router-DOM

文档:React-Router官方文档可参考

* 安装/引用:

  1. 安装:yarn add react-router-dom
    react-vite-antd环境下新建项目,react,react.js,前端

  2. 引用:import { BrowserRouter, Route, Link } from 'react-router-dom';

react-vite-antd环境下新建项目,react,react.js,前端

* 在导航组件中使用。 也可以新建routerAdmin.jsx作为管理router文件

动态路由完整代码
✏️ 1. router文件

react-vite-antd环境下新建项目,react,react.js,前端

✏️ 2. App.jsx代码
import React, { useState } from 'react';

///---引入ui-组件库
import { Button, Menu, Layout } from 'antd';
import {
  MenuFoldOutlined,
  MenuUnfoldOutlined,
} from '@ant-design/icons';
///---引入路由组件
import { Routes, Route, BrowserRouter } from 'react-router-dom';
import myRouter from './router/index'

const App = () => {
  ///---页面逻辑
  const { Header, Sider, Content } = Layout;

 // --- 左侧导航栏显示隐藏逻辑
  const [collapsed, setCollapsed] = useState(false);
  const toggleCollapsed = () => {
    setCollapsed(!collapsed);
  };
  return (
    <BrowserRouter>
      <Layout hasSider={true}>
        <Sider style={{
          textAlign: 'center',
          color: '#333',
          backgroundColor: '#fff',
        }} collapsed={collapsed} >
          <Menu
            mode="inline"
            items={myRouter}
            defaultSelectedKeys={['/purchase']} //默认选中key
            onClick={(e) => {
              console.log(e)
            }}
            style={{ height: '100%', }}
          >
          </Menu>
        </Sider>
        <Layout>
          <Header style={{
            textAlign: 'letft',
            color: '#fff',
            height: 50,
            paddingInline: 10,
            lineHeight: '50px',
            backgroundColor: '#fff',
          }}>
            <Button
              type="primary"
              onClick={toggleCollapsed}
              style={{
                marginBottom: 16,
              }}
            >
              {collapsed ? <MenuUnfoldOutlined /> : <MenuFoldOutlined />}
            </Button>
          </Header>
          <Content style={{
            height: '100vh',
            textAlign: 'center',
            lineHeight: '120px',
            backgroundColor: '#fff',
            borderBottom: '1px solid #333'
          }}>
            <Routes>
              <Route exact path="/" element={<Purchase />} />
              <Route exact path="/purchase" element={<Purchase />} />
              <Route exact path="/inventory" element={<Inventory />} />
              <Route exact path="/roles" element={<RoleList />} />
              <Route exact path="/roles/new" element={<NewRole />} />
              <Route exact path="/settings/theme" element={<ThemeSettings />} />
            </Routes>

          </Content>

        </Layout>
      </Layout>
    </BrowserRouter>
  );
};

const Purchase = () => {
  return <h1>Purchase Page</h1>;
};

const Inventory = () => {
  return <h1>Inventory Page</h1>;
};

const RoleList = () => {
  return <h1>Role List Page</h1>;
};

const NewRole = () => {
  return <h1>New Role Page</h1>;
};

const ThemeSettings = () => {
  return <h1>Theme Settings Page</h1>;
};
export default App;
📖 3.运行后页面效果

react-vite-antd环境下新建项目之菜单栏和导航使

开发中报错:warning.js:19 Warning: [antd: Menu] children will be removed in next major version. Please use items instead.

Ant Design 的 Menu 组件的 children 属性将在下一个主要版本中被移除。这意味着在未来的版本中,你应该使用 items 属性来传递菜单项,而不是直接使用 Menu.Item 组件作为 Menu 组件的子元素。
如下新版本中使用时不对的:
react-vite-antd环境下新建项目,react,react.js,前端
修改成如下:

 <Menu
  mode="inline"
  theme="dark"
  items={items}
  onClick={onClick}
  defaultSelectedKeys={['1']}
  defaultOpenKeys={['sub1']}
  >
</Menu>
开发中报错:index.jsx:14 Uncaught SyntaxError: The requested module ‘/node_modules/.vite/deps/react-router-dom.js?v=e8aea50f’ does not provide an export named ‘useHistory’
  1. 没有使用最新版本的“react-router-dom”模块,npm升级模块:npm update react-router-dom。
  2. 当如方法不对,应该是“import { useHistory } from ‘react-router-dom’”。
  3. 如果以上两种方式都无法解决问题,可以尝试删除“node_modules”文件夹,并重新安装
  4. 如果上述方法都不能解决问题,你可以使用其他版本的“react-router-dom”模块,或者尝试使用其他的路由模块。
开发报错:TypeError: Cannot destructure property ‘basename’ of ‘React.useContext(…)’

是因为link标签没有被BrowserRouter标签包裹

  <BrowserRouter>
///此处写link逻辑就可以了
</BrowserRouter>
开发踩坑: 配置好之后路由更新了,页面没有更新。

发现是Route属性使用错误了, <Route exact path=“/” element={} />,我把element使用成component了,改了就可以了,

开发踩坑: react使用antd中刷新页面时候 ,布局有闪烁,查找发现使用Sider标签加载页面会有闪烁

是由于 Sider 组件的初始状态导致的。Sider 组件默认是收起状态,当它在页面加载时展开时,可能会导致页面内容重新布局,从而引起闪烁。官网又给出Layout 标签属性hasSider
react-vite-antd环境下新建项目,react,react.js,前端

react-vite-antd环境下新建项目,react,react.js,前端文章来源地址https://www.toymoban.com/news/detail-657337.html

到了这里,关于react-vite-antd环境下新建项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • WEB3 创建React前端Dapp环境并整合solidity项目,融合项目结构便捷前端拿取合约 Abi

    好 各位 经过我们上文 WEB3 solidity 带着大家编写测试代码 操作订单 创建/取消/填充操作 我们自己写了一个测试订单业务的脚本 没想到运行的还挺好的 那么 今天开始 我们就可以开始操作我们前端 Dapp 的一个操作了 在整个过程中 确实是没有我们后端的操作 或者说 我们自己就

    2024年02月07日
    浏览(47)
  • 新建vite+vue3+ts项目,以及解决过程中遇到的问题

    目录 一、新建vite+vue3+ts项目 二、解决过程中遇到的问题 解决报错:Module ‘“xx.vue“‘ has no default export. 解决报错:Error [ERR_MODULE_NOT_FOUND]: Cannot find package ‘uuid’ imported from xxx的解决 解决报错:[plugin:vite:css] Preprocessor dependency \\\"less\\\" not found. Did you install it? 此处我使用npm做一下

    2024年02月06日
    浏览(113)
  • vite 创建 react 项目

    npm create vite@latest 选择 react 和 ts 安装 redux react-redux npm i redux react-redux 安装 react-router-dom npm i react-router-dom 安装 reset-css 样式初始化 npm i reset-css 在 main.tsx 中引入 import \\\"reset-css\\\" 清除浏览器默认样式 安装 sass npm i sass 正确的样式引入顺序 样式初始化即 reset-css --》  ui框架样式

    2024年01月17日
    浏览(31)
  • react native在windows环境搭建并使用脚手架新建工程

    截止到2024-1-11,使用的主要 软件的版本 如下: 软件实体 版本 react-native 0.73.1 react 18.2.0 react-native-cli 2.0.1 Android Studio 2022.3.1 Patch3 Android SDK Android SDK Platform 33 34 Android SDK Android SDK Tools 33 34 Android SDK Intel x86 Atom_64 System Image Android SDK Google APIs Intel x86 Atom System Image node 20.10.0 yarn 1.

    2024年02月02日
    浏览(35)
  • 配置Vite+React+TS项目

    执行 npm create vite 并填写项目名、用那个框架。。 路径别名 在 vite.config.ts 里面配置: 如果开发环境是ts,会提示如找不到path或找不到__dirname等,需要先安装一下node的类型声明文件: npm i -D @types/node 然后去修改根目录的 tsconfig.json 文件,不然你使用路径别名引入组件的时候会

    2024年02月21日
    浏览(31)
  • 【从0配置JAVA项目相关环境2】node.js + 前端 从配置到运行

    实验室电脑,需要跑一个前后端分离的JAVA项目,于是开始重新配置 全部(数据库+后端+前端)配置环境+修改代码 耗时6h,包括遇到各种坑,但总体而言弯路走的不多 如果跟着这篇博客走,理论上会避开我遇到的那些坑hh 对于前端开发者来说,我们也没有遗漏。文章将详细介

    2024年02月04日
    浏览(32)
  • vite+react+ts+eslint+prettier构建react开发项目

    目录 一、构建项目 二、安装eslint和prettier的依赖 三、修改.eslintrc.cjs,创建.prettierrc.cjs 1、.eslintrc.cjs文件配置 2、ESlint忽略文件.eslintignore 3、.prettierrc.cjs文件配置  4、prettierrc忽略配置文件.prettierignore

    2024年02月11日
    浏览(33)
  • 使用 create-react-app 搭建项目ts+less+antd+redux+router+eslint+prettier+axios

    当前市面上有很多前端框架或者模板、如:umi、dva、antd-design-pro、create-react-app 等一些框架或者模板。 create-react-app 是 react 官方提供的,相对来说比较干净一些。 此项目是在 create-react-app 的基础上进行搭架、项目采用 ts 语法 项目整体上会添加上以下功能: 完整项目代码 传

    2024年02月03日
    浏览(31)
  • 搭建React项目,基于Vite+React+TS+ESLint+Prettier+Husky+Commitlint

    node: 20.10.0 安装包管理器pnpm 基于Vite创建项目 进入项目目录安装依赖 启动项目 1、初始化ESLint 按下图结果进行初始化选择: 按需选择完配置后,选择立即安装,就可一键安装相关依赖。安装成功后 ESLint 帮我们创建了 .eslintrc.cjs 配置文件(cjs 是指 CommonJS 格式)。 2、在项目

    2024年02月04日
    浏览(55)
  • (react+ts)vite项目中的路径别名的配置

    找到vite.config.ts,这里会现实报错,需要安装一下 npm i -D @types/node 这个库的ts声明配置 虽然配置好了@但是输入@没有提示,找到tsconfig.json

    2024年02月08日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包