React 入门 01:快速写一个React的HelloWorld项目

本文主要介绍如何用React开发的脚手架工具vite快速搭建一个符合实际业务项目结构的hello world网页项目并理解React的代码文件结构以及页面渲染流程。

文章目录

一、准备工作:安装node.js

Windows系统的node.js安装十分简易,没有环境安装经验的伙伴可以参考文章:Windows系统下安装node.js

二、项目搭建

创建项目目录

我们需要先创建一个用于放置项目文件的目录,之后该项目相关的命令操作都需要在该路径下执行。我们新建一个hello-react的目录,然后进入到该目录,命令行路径提示如下:C:\hello-react>

使用Vite创建并启动一个项目

vite是一个构建工具,可以理解为一个模块打包器。 它的主要目标是快速将 JavaScript 文件打包在一起,打包后的文件用于在浏览器中使用。

我们可以使用命令npm create vite@latest my-app -- --template react来快速创建一个名为my-app的项目。比如我们的项目希望叫做hello-react,就可以把命令改为npm create vite@latest hello-react -- --template react

命令中间加了一个孤立的--,会让vite选择默认的配置(react+javascript),如果需要调整可以去掉--,用命令npm create vite@latest my-app --template react来启动项目,然后根据提示选择相关工具配置。

看到控制台最终已经输出如下内容:

shell 复制代码
  VITE v7.1.12  ready in 297 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h + enter to show help

根据输出,我们的项目已经运行起来了,浏览器访问http://localhost:5173/即可以到看到了。于是 我们浏览器访问指定地址后可以看到如下页面:

学会如何修改页面内容

网页内容是如何展示出来的

我们要修改网页内容,就要知道网页内容是如何展示出来的。

首先用你喜欢的编辑器打开项目(我个人偏爱并强推VS Code),可以看到如下右侧项目代码文件结构:

如果过了解过网页开发的基础知识,会知道我们看到的网页都是html,然后通过cssjshtml上添加样式以及交互效果。所以我们可以点开项目根目录的index.html,看到代码内容如下:

index.html内容中的<title>与我们看到的页面tab名称是对应的,说明我们看到的确实是这个html里面的内容。但是<body>标签中并没有内容,那么我们在页面上看到的vitereact的图片和文本是哪来的呢?

这里提两种探索的方法

方法一:搜索关键内容

我们看到页面有四个文本(三个纯文本内容和一个按钮文本内容),所以我们可以直接用IDE搜索这些文本所在位置,如下:

我们尝试修改一下找到的App.jsx中的Vite + React,改成Hello React World!并保存,然后刷新浏览器查看页面是否发生变化,可以看到页面如下:

页面内容确实跟预期一样发生了变化。再去看App.jsx文件中的其他内容,可以看到浏览器页面里展示的其他内容也都在这个代码文件中。

所以我们可以确定,如果我们想修改页面内容只需要修改App.jsx即可

同样地,当我们想进一步去探索React是如何知道要把App.jsx的内容渲染到浏览器页面上的,我们就可以搜索App.jsx,看哪里用到了这个文件,搜索结果如下:

我们可以看到,这是在一个src目录下main.jsx文件中,根据名称可以知道,srcsource的缩写,代表源代码文件目录,main.jsx主入口文件。代码中有一个.render()函数调用(render是渲染的意思),那么到这里我们可以大胆推测整个网页的渲染逻辑就是,React有一个主入口main.jsx,我们的页面具体内容App.jsx会被导入到这个入口文件中,然后放到渲染部分(即render()包裹的部分)中进行内容的渲染。所以我们可以通过浏览器地址http://localhost:5173/看到页面渲染的App.jsx中的内容。

方法二:看目录

使用标准化工具来组织代码的好处是,文件的位置和命令都有迹可循。我们看到根目录下index.html之外的文件名字都表明这些文件是一些配置相关的文件(比如eslint.config.js是eslint的配置文件、vite.config.js是vite的配置文件)。而其他文件夹根据名字可以知道:

  • node_modules存放项目相关的依赖包
  • srcsource的缩写,所以是存放源代码的地方
  • pubilc是公开目录,存放可以公开访问的文件
  • src/assets是资源/资产,所以存放我们在项目中用到的比如图片、视频或者音频等内部使用的内容资产

不同构建工具(比如用create-react-appcreate-next-apprsbuild等)或者不同框架(比如Vue)得到的项目文件结构可能不同,但是基本都会使用通用的名称,比如:

  • build是写好代码之后构建完毕用于部署到服务器上的文件夹
  • config是用来放配置的目录
  • static是静态的意思,该目录是用来存放一些静态文件的地方
  • test是放代码测试文件的地方

所以如果我们要查找页面的内容(涉及代码,属于可改变的内容而非静态文件),应该在src目录下找,打开src目录,可以看到两个文件App.jsxmain.jsx。一般来说,直接存放在目录下的,是类似于"程序入口"一样的文件。根据文件名称,App代表的是Application(应用)内容,而main代表的应该是主入口,所以我们先尝试打开main.jsx,查看内容

可以看到main.js里面import 导入了一些东西,虽然我们不知道具体是什么,但是我们的代码是标准化的,所以根据命名,可以推测:

  • App作为appliaction(应用)的简写,应该代表跟应用相关的内容;
  • getElementById('root')翻译过来是通过ID来获取元素的意思,获取了某一个id为root的元素,之前我们在index.html中看到<body>中就是一个id为root的元素,可以猜测这行代码就是获取了这个元素。。
  • render是渲染的意思,在渲染的内容中放入了<StrictMode> <App /> </StrictMode>,所以这里应该是定位到了index.html的body位置,然后将App的内容渲染到了页面中。

根据以上三点,我们可以基本确定,我们在浏览器中看到的内容就是从这里传到index.html并被浏览器展示出来的。

进一步,我们查看App的内容,看页面的图片和文字是如何引入到页面的,打开App.jsx之后,可以看到内容如下:

我们看到App.jsx中有两个<img>分别引用了对应的logo,这就是页面展示的vitel和reactlogo图片来源。我们可以尝试删除其中一张logo图片或者修改文件中其他内容,然后检查页面展示的内容是否变成了我们修改后的内容。通过刷新浏览器页面,我们的推测可以得到验证,我们也明白了React是如何将代码渲染到浏览器的。

相关推荐
大雷神2 小时前
DevUI 实战教程:从零构建电商后台管理系统(完整版)
前端·javascript·华为·angular.js
come112342 小时前
现代前端技术栈关系详解 (PHP 开发者特供版)
开发语言·前端·php
合作小小程序员小小店2 小时前
web网页开发,在线%图书管理%系统,基于Idea,html,css,jQuery,java,ssm,mysql。
java·前端·后端·mysql·jdk·intellij-idea
E***q5393 小时前
JavaScript数据挖掘开发
开发语言·javascript·数据挖掘
滿3 小时前
vue3 elementplus el-table toggleRowSelection使用方法
javascript·vue.js·elementui
猪八戒1.03 小时前
onenet接口
开发语言·前端·javascript·嵌入式硬件
程序猿小蒜3 小时前
基于Spring Boot的宠物领养系统的设计与实现
java·前端·spring boot·后端·spring·宠物
合作小小程序员小小店3 小时前
web网页开发,在线%食堂管理%系统,基于Idea,html,css,jQuery,java,ssm,mysql。
java·前端·mysql·html·intellij-idea·jquery
h***83933 小时前
JavaScript开源
开发语言·javascript·ecmascript
人工智能训练3 小时前
Windows中如何将Docker安装在E盘并将Docker的镜像和容器存储在E盘的安装目录下
linux·运维·前端·人工智能·windows·docker·容器