当前位置: 首页 > news >正文

React---day4

3、React脚手架

生成的脚手架的目录结构

在这里插入图片描述

什么是PWA

  • PWA全称Progressive Web App,即渐进式WEB应用;
  • 一个 PWA 应用首先是一个网页, 可以通过 Web 技术编写出一个网页应用;
  • 随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能;
  • 这种Web存在的形式,我们也称之为是 Web App;

PWA解决了什么问题

  • 可以添加至主屏幕,点击主屏幕图标可以实现启动动画以及隐藏地址栏;
  • 实现离线缓存功能,即使用户手机没有网络,依然可以使用一些离线功能;
  • 实现了消息推送;
  • 等等一系列类似于Native App相关的功能;

什么是webpack

webpack 是一个现代 JavaScript 应用程序的 静态模块打包器(module bundler) ;当 webpack 处理应用程序时,它会递归地构建一个 依赖关系图(dependency graph) ,其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle

生成一个自己的react项目:

新建终端输入以下命令进行全局安装:

npm install -g create-react-app

切换想创建项目的目录,在终端输入如下命令:

create-react-app 项目名称
  • npm start:执行开发模式,运行该项目

  • npm run build:执行生产模式,打包该项目

  • npm test:执行测试模式,测试该项目

  • npm run eject:将webpack相关文件暴露出来(React设置webpack文件隐藏,为了防止我们修改其文件导致项目不能运行,执行该命令,将隐藏文件显示且不能再将其隐藏了!!!)

默认是创建React+JS的项目,如果想创建React+TypeScript的项目,执行如下命令即可。

create-react-app 项目名称 --template typescript
cd 项目名
npm start

我发现问的react版本是19,和老师的有很多不一样,看来后面就要ai+文档辅助我了

清理一下目录:

在这里插入图片描述

index.js:

import React from "react";
import { createRoot } from 'react-dom/client';
// 由于文件名大小写不一致问题,修正导入路径以匹配实际文件名
import { App } from "./App";const root = createRoot(document.getElementById('root'));
root.render(<App />);

App.js:

import React from "react";
export class App extends React.Component{constructor(){super();this.state =  {counter : 0}}render(){return (<div><h2>当前计数为{this.state.counter}</h2></div>)}
}

–template typescript
cd 项目名
npm start


我发现问的react版本是19,和老师的有很多不一样,看来后面就要ai+文档辅助我了**清理一下目录:**[外链图片转存中...(img-F4RSmgdd-1748488991253)]**index.js:**

import React from “react”;
import { createRoot } from ‘react-dom/client’;
// 由于文件名大小写不一致问题,修正导入路径以匹配实际文件名
import { App } from “./App”;

const root = createRoot(document.getElementById(‘root’));
root.render();


**App.js:**

import React from “react”;
export class App extends React.Component{
constructor(){
super();

    this.state =  {counter : 0}
}
render(){return (<div><h2>当前计数为{this.state.counter}</h2></div>)
}

}


相关文章:

  • 家庭路由器改装,搭建openwrt旁路由以及手机存储服务器,实现外网节点转发、内网穿透、远程存储、接入满血DeepSeek方案
  • React 生命周期与 Hook:从原理到实战全解析
  • 2025.05.28-华为暑期实习第一题-100分
  • STM32 启动文件详解:理解单片机启动的“引导者”
  • (一)视觉——工业相机(以海康威视为例)
  • 【静电模拟】打火机的电子部分产生的电压和静电相比,以及能否用其模拟静电枪
  • uniapp 开发企业微信小程序时,如何在当前页面真正销毁前或者关闭小程序前调用一个api接口
  • 聊聊Tomato Architecture
  • Ansys Zemax | 手机镜头设计 - 第 2 部分:光机械封装
  • 【Linux网络篇】:初步理解应用层协议以及何为序列化和反序列化
  • excel表格记账 : 操作单元格进行加减乘除 | Excel中Evaluate函数
  • PostgreSQL数据库配置SSL操作说明书
  • 三轴云台之抗扰动技术篇
  • [VMM]分享一个用SystemC编写的页表管理程序
  • 关于AWESOME-DIGITAL-HUMAN的部署
  • Day 39
  • pycharm debug的时候无法debug到指定的位置就停住不动了
  • 智能厨房系统—御控物联网IoT平台
  • 利用海外代理IP,做Twitter2026年全球趋势数据分析
  • 数据库 | 时序数据库选型
  • 做情趣用品网站需要哪些资质/优化教程网官网
  • 免费的课程设计哪个网站有/搜狗网页版入口
  • 保定网站建设方法/买卖链接网
  • 学校网站建设介绍/互联网营销的方式有哪些
  • 百度如何把网站做链接地址/注册域名的步骤
  • 网站建设模块方案/重庆网站排名推广