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是如何将代码渲染到浏览器的。

相关推荐
崔庆才丨静觅27 分钟前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby60611 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了1 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅1 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅2 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅2 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment2 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅2 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊3 小时前
jwt介绍
前端
爱敲代码的小鱼3 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax