创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署

这篇具有很好参考价值的文章主要介绍了创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 安装 create-react-app

1.1 执行安装命令

  • 全局安装 create-react-app
    npm i -g create-react-app
    
    sudo npm i -g create-react-app
    
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
  • 说明:不建议安装全局,建议使用 npx 命令安装,具体可参考官网,如下:
    npx create-react-app my-app
    
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
    官网:
    https://zh-hans.legacy.reactjs.org/docs/create-a-new-react-app.html.

1.2 安装遇到的问题

1.2.1 问题1——npm ERR! code ENOTFOUND(网络问题clashx)

  • 问题描述,如下:
    npm ERR! code ENOTFOUND
    npm ERR! syscall getaddrinfo
    npm ERR! errno ENOTFOUND
    npm ERR! network request to https://registry.npmmirror.com/create-react-app failed, reason: getaddrinfo ENOTFOUND registry.npmmirror.com
    npm ERR! network This is a problem related to network connectivity.
    npm ERR! network In most cases you are behind a proxy or have bad network settings.
    npm ERR! network 
    npm ERR! network If you are behind a proxy, please make sure that the
    npm ERR! network 'proxy' config is set properly.  See: 'npm help config'
    
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
  • 解决问题——方式1
    • 如果使用了clashx,可能是它问题,解决如下
      • 取消代理即可
      • 如果取消代理、退出clashx之后,电脑死活还是不能上网,解决方式如下:
        • 1⃣️:更新clashx;
        • 2⃣️:如果已经是最新版本了,那就处理一下dns,处理方式如下(Mac):
          mac电脑点wifi图标–点网络偏好设置–高级–dns,点加号,新增114.114.114.114保存后就可以上网了。
          创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
  • 解决问题——方式2
    • 首先,还是clash X的问题,这里还有个前提,其他应用都能上网,只有浏览器不能上网的问题!
    • 解决问题如下:
      • 页面上清理浏览器历史记录;
      • 如果还不可以:去下面目录下进行清理:
        /Users/xxx/Library/Application Support/Google/Chrome
        
        我就随便清理了几个,然后可行了
        rm -rf component_crx_cache
        rm -rf extensions_crx_cache
        rm -rf first_party_sets.db
        rm -rf first_party_sets.db-journal
        rm -rf SingletonCookie -> 6759188605641184688
        rm -rf SingletonLock -> MacBook-Pro.local-1291
        rm -rf ShaderCache
        rm -rf GrShaderCache
        

1.2.2 问题2——其他问题

  • 如果是其他问题,参考下面帖子:
    npm command create-react-app failled.

2. 创建项目

2.1 创建项目命令

  • 命令如下:
    create-react-app react-demo1
    
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

2.2 查看项目结构

  • 如下:
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

2.2.1 目录结构

2.2.2 注意点

  • 注意新版和老板的不一样,这里自动生成的是react18,需要注意的点是,如下:
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
  • 详细可参考官网
    如何升级到 React 18.
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

3. 启动项目

  • 启动命令:
    npm start
    
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

4. react-demo

  • 创建一个reacr-demo2写自己的小demo,主要是3个文件,如下:
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

  • 启动看效果:
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

  • 是能启动,但是好无聊,所以还是简单写点东西吧,继续……

5. react-demo优化

5.1 安装路由

  • 项目中会用到,所以先安装了
    npm i react-router-dom
    
  • 引入:
    import {
        BrowserRouter as Router,
        Route,
        Link
      } from 'react-router-dom'
    
  • 需要注意的问题是,版本不同可能语法不同,我这里安装的是最新版本6,5的话可能语法不同,需要注意:
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
  • 更多详细介绍,可参考官网:
    • https://react-router.docschina.org/.
    • react-router6----https://reactrouter.com/en/main.

5.2 遇到的问题

5.2.1 No routes matched location “/dog”

  • 问题描述如下:

    No routes matched location "/dog"  
    

    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

  • 解决问题,注意新版写法,如下:

    <Routes>
        <Route exact path="/" element={<Home/>} />
        <Route path="/dog" element={<Dog/>} />
        <Route path="/cat" element={<Cat/>} />
    </Routes>
    

    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

  • 更多参考,请去官网看例子

    • https://reactrouter.com/en/6.6.1/start/examples.
    • https://github.com/remix-run/react-router/blob/dev/examples/basic/src/App.tsx.

5.2.2

5.3 项目简单设计

5.3.1 项目效果

  • 如下:
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

5.3.2 项目目录结构

  • 如下:
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

5.3.3 核心代码

  • App.js 如下:

    import PetHeader from './PetHeader/index'
    import PetBottom from './PetBottom/index'
    import PetLeft from './PetLeft';
    
    function App() {
      return (
        <div>
          <PetHeader></PetHeader>
          <PetLeft></PetLeft>
          <PetBottom/>
        </div>
      );
    }
    
    export default App;
    
  • PetLef 组件
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

    import React from "react"
    import {BrowserRouter,Route,Routes,Link} from 'react-router-dom'
    import Home from "../Home"
    import Dog from "../Dog"
    import Cats from "../Cat/Cats"
    import './index.css'
    
    class PetLef extends React.Component{
        render(){
            return(
                <BrowserRouter>
                    <div className="myMainData left" >
                        {/* 编写路由链接  靠路由链接实现切换组件 */}
                        <ul>
                            <li><Link to="/">Home</Link></li>
                            <li><Link to="/dog">狗狗信息</Link></li>
                            <li><Link to="/cats">猫咪信息</Link></li>
                        </ul>
                    </div>
    
                    <div className="myMainData right" >
                            {/* 注册路由 */}
                        <Routes>
                            <Route exact path="/" element={<Home/>} />
                            <Route path="/dog" element={<Dog/>} />
                            <Route path="/cats/*" element={<Cats/>} />
                        </Routes>                       
                    </div>
                </BrowserRouter>
            )
        }
    }
    
    export default PetLef;
    
    
  • Cats 和 Cat组件
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18文章来源地址https://www.toymoban.com/news/detail-732557.html

    import React from "react";
    import CatInfo from "./Info/CatInfo";
    import {Route,Routes,Link} from 'react-router-dom'
    
    class Cats extends React.Component{
        state = {
            cats:[
                {catId:'A1001',catName:'点点',catAge:5,catKind:'德文'},
                {catId:'A1002',catName:'阿苔',catAge:6,catKind:'德文'},
                {catId:'A1003',catName:'花花',catAge:2,catKind:'布偶'}
            ]
        };
        render(){
            const {cats} = this.state;
            return(
                <div>
                    <h2>猫咪信息</h2>
                    <ul>
                        {
                            cats.map((cat)=>{
                                return(
                                    <li key={cat.catId}>
                                        {/* <Link to='/cats/info/'> */}
                                        <Link to={`/cats/info/${cat.catId}/${cat.catName}`}>
                                            {cat.catId}--{cat.catName}--{cat.catAge}--{cat.catKind}
                                        </Link>
                                    </li>
                                )
                            })
                        }
                    </ul>
                    <br /><br />
                    <Routes>
                         {/* <Route path='info' element={<CatInfo/>} /> */}
                         <Route path='info/:catId/:catName' element={<CatInfo/>} />
                    </Routes>
                </div>
            )
        }
    }
    export default Cats;
    
    import React from "react";
    
    //这个注意:router6新特性,新增的hooks  必须函数式组件
    import { useParams } from "react-router-dom";
    
    function Cat(){
        // console.log(useParams());
        let {catId,catName} = useParams();
        return(
            <div>
                <h3>
                    {catId}--{catName}
                </h3>
            </div>
        )
    }
    
    export default Cat;
    

5.4 项目下载

  • 只是上面展示的一个demo,需要的又有更多需求的,自行优化
  • 需要的,可下载:
    react入门demo(react18 + react-router6).

6. 项目打包

6.1 打包

  • 命令:
    npm run build
    
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

6.2 提供服务器的方式

6.2.1 部署到tomcat或nginx服务器上

  • 这种方法在这里就不介绍了,需要的可参考下面的文章,类似的:
    入门vue——创建vue脚手架项目 以及 用tomcat和nginx分别部署vue项目(vue2).

6.2.2 使用serve库开启服务器

  • 全局安装 serve 库
    npm i serve -g
    
  • 开启一台服务
    serve build
    
    cd build
    serve
    
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18
  • 查看效果
    创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署,react,react.js,前端,前端框架,react18

到了这里,关于创建react脚手架项目——demo(react18 + react-router 6)+ react项目打包部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 创建一个vue2的脚手架项目(超详细)

    0.前言 在用npm安装vue脚手架之前需要安装node,前面博客有详细安装过程,请读者安装node之后再进行脚手架的安装 1 npm vue2的安装脚手架 2.创建vue2脚手架项目 3.开启服务器 4.在浏览器中输入端口地址 5.项目目录介绍

    2024年02月11日
    浏览(47)
  • react快速开始(三)-create-react-app脚手架项目启动;使用VScode调试react

    create-react-app(以下简称cra)作为react官方提供的脚手架工具,是目前生成react项目一个非常常用和主流的工具。很多企业级的应用搭建也是基于这个脚手架工具上二次开发 create-react-app脚手架 生成的 package.json中 scripts如下: 我们看到分别是项目的启动开发环境,构建,测试的

    2024年02月10日
    浏览(42)
  • 使用vue-cli脚手架创建vue项目

    0.vue cli安装 vue cli2安装 vue cli2卸载 vue cli3安装 key通过命令查看当前安装的vue cli的版本 1. vue init vue init 是vue-cli2.x的初始化方式,可以使用github上面的一些模板来初始化项目 webpack是官方推荐的标准模板名。 vue-cli2.x项目向3.x迁移只需要把static目录复制到public目录下,老项目的

    2024年02月11日
    浏览(49)
  • 关于基于vue-cli脚手架创建vue项目(图文版)

    目录 一.vue-cli脚手架·概述(来源于官方文档) 二.创建流程 2.1 首先安装node.js,如未安装请移步到:安装node.js 2.2 安装脚手架vue-cli 2.2.1 使用npm install -g @vue/cli命令  2.2.1 使用vue -V 查看版本并检验是否安装成功  2.3 安装vue项目 2.3.1 使用命令 vue create 项目名 ​编辑 2.3.2 这里

    2024年02月07日
    浏览(47)
  • vue-cli 脚手架创建uniapp项目(微信小程序)

    1、全局安装 vue-cli 脚手架(不建议用 5.0 版本,避免报错) 2、脚手架创建项目 3、选择 默认模板 即可 4、编译并启动项目  5、开发者工具,导入项目,注意路径 \\\"项目地址/dist/dev/mp-weixin\\\" 开发的规范 不能直接在开发者工具中修改代码,口诀:vscode做开发,开发者工具做调试

    2024年02月09日
    浏览(34)
  • Mac OS安装Vue CLI脚手架并创建一个基础项目教程

    前后端分离 可以大大地提高开发效率,主流的解决方案为 Vue.js+SpringBoot ,这里主要介绍 Vue在Mac端的入门教程 。软硬件环境为Macbook Air M2+macOS Vantura 13.4.1。 Vue (发音为 /vjuː/,类似 view) 是一款用于 构建用户界面 的 JavaScript 框架,是官方提供的 基于 Webpack 的 Vue 工具链 。它基

    2024年02月04日
    浏览(55)
  • 使用脚手架创建项目并为拆分页面各自的组件(Web3项目二实战之一)

    在经过 Web3项目一实战之一 到 Web3项目实战之六 的过程中,您已然擢升为一个拥有 Web3项目 开发实战的 Web3 开发工程师了,当然咯,您也可以很自豪地对自己发自内心的欢呼,“我特么,现在也算是一个区块链开发工程师了!” 既然有了 Web3项目一实战 的经验,那么,对于使

    2024年02月03日
    浏览(26)
  • 安装React脚手架

    在安装React脚手架之前,你需要决定使用哪个包管理工具。这里我们选择使用npm。运行下面的命令来安装React脚手架: 这个命令会在全局安装React脚手架工具create-react-app。 现在,你已经准备好创建一个新的React应用程序了。使用下面的命令来创建一个名为myreactapp的React应用程

    2024年02月09日
    浏览(30)
  • React 脚手架

    React 脚手架(React boilerplate)是一种预先设置好的、可以快速启动 React 项目的工具。脚手架已经包含了 React、Webpack、Babel、ESLint、Jest 等一些常用的工具和库,并已经配置好了这些工具的参数,可以直接使用和自定义修改。使用 React 脚手架可以大大加快项目的启动和开发,同

    2024年02月13日
    浏览(35)
  • React应用(基于React脚手架)

    react 是前端三大框架中之一,而且大公司基本都在用react 包括百度也在使用 他有自己的独特的虚拟dom build-react-cli是帮助你快速创建生成react项目的脚手架工具,配置了多种可选择的不同类型项目模版。 xxx脚手架: 用来帮助程序员快速创建一个基于xxx库的模板项目 包含了所有需

    2023年04月21日
    浏览(26)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包