首页 > 其他分享 >React 使用NPM创建项目

React 使用NPM创建项目

时间:2023-04-13 18:35:48浏览次数:49  
标签:NPM 创建 App js React export import

React 使用NPM创建项目

虽然研究 React 已经有一段时间,但之前写 Demo 都是直接新建文件夹然后在里面写 html 和 js,究其原因还是因为之前用不了 NPM。现在终于是把 NPM 的问题解决了(从 IDEA 上 copy 了个代理的地址),这下才能算是真正的 DEV 环境。

但有了 NPM 反而不知道怎么创建项目了。找了半天关于创建新项目的资料,才算搞明白,还有之前一直不知道怎么搞的 exportimport 用不了的问题在正常开发环境里也没有了,必须记录一下。

安装 NPM

首先是安装 NPM,不必多说,没有 NPM 搞前端就像没有 Maven 搞后端,跟个原始人一样。下载安装 Node.js 后,就自带了 NPM,在 cmd 中使用 npm --version 命令查看,出现版本号即为安装成功,环境变量也不用配,比安装 Java 都简单。有了 NPM 就可以创建项目了,使用的编辑器自然是 VSCode,好使。

创建 React 项目

在 VSC 中打开项目文件夹,然后在打开控制台终端(VSC 直接内置终端,当然直接开个 CMD 也行),输入

npx create-react-app my-react

此命令要求 npm5.2+,但现在装的应该都是最新版本吧。然后回车确认,就可以看到 NPM 正在下载包了:

img

时间可能有点小久,安装速度跟 NPM 设置的仓库地址有关系。安装完成后,终端会显示:

We suggest that you begin by typing:

  cd my-react
  npm start

Happy hacking!
PS E:\VueJS> 

可以看到它已经将后续的命令列出来了,即进入项目目录并使用 npm start 命令启动项目。如果此时按这个做,那么就会看到官方的项目模板:

img

然后在终端里可以看到启动相关的信息:

img

这样按照官方配置最简单的 React 项目久启动成功了。

纯净 React 项目

虽然按模板启动成功了,但可以看到项目路径非常复杂(稍微):

img

如果我们想要一个纯净的 React 项目写自己的代码怎么办呢?很简单,直接将 public 和 src 文件夹清空(里面的文件全删掉!),git 配置文件和 readme 也可以删掉,这样我们可以得到一个框架:

img

这样看起来就舒服了。但缺少了这么多文件,项目肯定是跑不了了。还需要将其中几个关键的骨架加回去:

index.html

在 public 文件夹下添加 index.html 文件,这个文件是项目启动后的入口,显示的就是这个页面的内容。文件内容就是经典的 HTML 框架,只需要有一个 root 节点就可以了:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Hello Qiyuanc</title>
</head>
<body>
    <div id="root"></div>
</body>
</html>

App.js

在 src 文件夹下添加 App.js 文件,这个文件顾名思义就是整个应用程序,后续就是对它的内容进行自定义,并将它渲染到 root 节点上就可以了:

import React, { Component } from 'react'
 
export default class App extends Component {
    render() {
        return (
            <div>
                Hello Qiyuanc!
            </div>
        )
    }
}

index.js

在 src 文件夹下添加 index.js 文件,这个文件就是负责将 App 渲染到 index 上,很简单:

import React from 'react'
import ReactDOM from 'react-dom'
import App from './App'
 
ReactDOM.render(<App/>, document.getElementById('root'))

创建了这三个关键文件,按 Ctrl+S 保存并刷新页面,就可以看到页面正常显示内容“Hello Qiyuanc!”了!

import 与 export

之前一直用原始方法创建 html 文件和 js 文件,importexport 这两个东西一直用不起来,查了一大堆资料都没解决,人都晕了。这次有了项目模板,可以再试一试了。

在 src 路径下创建 Child.js 文件:

export function Child(props) {
    return (
      <div>
        <div>{props.children[2]}</div>
        <div>{props.children[1]}</div>
        <div>{props.children[0]}</div>
      </div>
    )
  }

此处使用具名导出的方式,导出了 Child 组件。再创建 Parent.js 文件,导入 Child 组件:

import { Child } from './Child.js'

export function Parent() {
    return (
      <Child>
        {"这是0,应该排第一"}
        <>这是1,应该排第二</>
        <div>这是2,应该排第三</div>
      </Child>
    )
  }

对应 Child.js 里的具名导出,此处使用了具名导入(加花括号),这样就可以使用 Child 组件了(真正的组件化!)。

同时 Parent.js 里也导出了 Parent 组件,在 App.js 中用到:

import { Parent } from './Parent.js'

function App() {
  return (
    <Parent />
  );
}

export default App;

此处使用的是默认导出,对应的,在 index.js 中导入的方式为默认导入

import React from 'react'
import ReactDOM from 'react-dom'
// 默认导入
import App from './App'
 
ReactDOM.render(<App/>, document.getElementById('root'))

最后 index.js 中将 App 组件渲染到了 root 节点上,完成了页面的显示!!!

终于搞定这个 importexport 的问题了,舒服了。

最后再提两个点:

  1. 使用 npm start 开的项目,目前都是直接在终端里 Ctrl+C 停止的,不知道有没有别的办法;

  2. 控制台报了个警告,如下。

    Warning: ReactDOM.render is no longer supported in React 18. Use createRoot instead. Until you switch to the new API, your app will behave as if it's running React 17. Learn more: https://reactjs.org/link/switch-to-createroot

意思就是说 React 18 里已经不用 ReactDOM.render 方法啦,这下也算是与时代接轨了,类目。

标签:NPM,创建,App,js,React,export,import
From: https://www.cnblogs.com/qiyuanc/p/front10.html

相关文章

  • React国际化方案及示例
    ​背景:随着公司走向国际,那么需要对产品进行国际化语言的预言处理。该预言方案主要是为了满足跨国企业和全球用户的需求而设计的。随着公司步入国际领域,该方案将有助于提高公司的国际化水平和竞争力。在国际化项目中,需要考虑不同语言、文化和地区的用户习惯和需求,确保产品的功能和......
  • mysql创建百万条虚假数据进行学习
    1.创建基础表CREATETABLE`app_user`(`id`bigint(20)unsignedNOTNULLAUTO_INCREMENT,`name`varchar(50)DEFAULT''COMMENT'用户昵称',`email`varchar(50)NOTNULLCOMMENT'用户邮箱',`phone`varchar(20)DEFAULT'......
  • Github创建组织(organization)
    前言创建Github组织(Organization)可以让你和你的团队共享代码,更好地管理和协作开发项目。Github组织(Organization)是一个非常有用的工具,可以让开发者协同工作并共享他们的代码。首先,登录你的Github账户。Github上创建组织的详细步骤1、点击右上角的加号(+)按钮,然后从下拉菜单中选......
  • 面向对象编程 -- 创建对象1
    面向对象编程 --创建对象1//虽然使用Object构造函数或对象字面量可以方便地创建对象,但这些方式也有明显不足:创建具有同样接口的多个对象需要编写很多代码。一、概述//纵观ECMAScript规范的历次发布,每个版本的特性似乎都出人意料。//ECMAScript6开始正式支持类和继......
  • [Docker]volume的创建与挂载
    在Docker中创建和挂载Volume(卷)可以用于持久化保存数据和文件,便于容器间数据的共享。下面是创建和挂载Volume的一般步骤:创建Volume可以使用以下命令在Docker中创建Volume:dockervolumecreate<volume_name>其中<volume_name>是你希望创建的卷名称,例如:dockervolu......
  • echarts在同一个dom元素中创建两个图表
    核心:使用grid进行分区//直角坐标系内绘图网格左右通过left和right分上下通过top和bottom分grid:[{left:'10%',right:'55%',width:'30%'},{left:'55%',right:'10%',width:'30%'},],实例效果图: 实例代码:initEch......
  • 使用vue ui命令创建vue项目
    使用vueui创建项目时的几个选项1、什么是vueuivue3相比vue2多了一个创建项目的方式,那就是使用vueui的命令方式创建项目。vueui的实质就是使用vue官方图形化项目管理工具2、如何使用vueui创建vue项目或者直接选择第二个使用vue3的默认选项,我在这里介绍手动配置2.1......
  • Docker MySql8 创建、删除、授权用户
    1、登录MySql8#登录数据库dockerexec-itmysql8mysql-uroot-proot123456#切换数据库实例usemysql;2、用户操作2.1、查看用户selecthost,user,authentication_string,pluginfromuser;2.2、创建本地用户#创建一个用户名为admin,密码为admin123456的......
  • Flutter/React native/un-app
    Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。[5] Flutter开源、免费,拥有宽松的开源协议,适合商业项目。Flutter可以方便的加入现有的工程中。在全世界,Flutter正在被越来越多的开发者和组织使......
  • Oracle创建序列
    创建序列语法:CREATESEQUENCE序列名;--示例createsequenceSEQ_CX_TEXT_SEQ;----CreatesequencecreatesequenceSEQ_CX_TEXT_SEQminvalue1maxvalue9999999999999999999999999999startwith1incrementby1cache20;--如果指定cache,oracle预先在内存中放置......