react入门到实战 学习笔记1 搭建

news2024/11/25 4:57:18

一、React是什么

 


     一个专注于构建用户界面的 JavaScript 库,和vue和angular并称前端三大框架

React有什么特点

1- 声明式UI(JSX)

写UI就和写普通的HTML一样,抛弃命令式的繁琐实现

 2- 组件化

组件是react中最重要的内容,组件可以通过搭积木的方式拼成一个完整的页面,通过组件的抽象可以增加复用能力和提高可维护性

 

3- 跨平台

react既可以开发web应用也可以使用同样的语法开发原生应用(react-native),比如安卓和ios应用,甚至可以使用react开发VR应用,想象力空间十足,react更像是一个  元框架  为各种领域赋能

 二、环境初始化

使用React脚手架创建一个react项目

打开命令行窗口 、执行命令

npx create-react-app 项目名字
如:npx create-react-app react-basic

npx create-react-app 是固定命令,create-react-app是React脚手架的名称

 react-basic表示项目名称,可以自定义,保持语义化

npx 命令会帮助我们临时安装create-react-app包,然后初始化项目完成之后会自自动删掉,所以不需要全局安装create-react-app

启动项目

$ yarn start
or
$ npm start

三、项目目录说明调整

目录说明

1、src 目录是我们写代码进行项目开发的目录

2、package.json  中俩个核心库:react 、react-dom

目录调整

删除src目录下自带的所有文件,只保留app.js根组件和index.js

创建index.js文件作为项目的入口文件,在这个文件中书写react代码即可

入口文件说明:

import React from 'react'
import ReactDOM from 'react-dom'
import './index.css'
// 引入根组件App
import App from './App'
// 通过调用ReactDOM的render方法渲染App根组件到id为root的dom节点上
ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
)

但是,实操需要修改,删掉严格模式节点,会影响useEffect的执行时机(React18问题说明)

//React:框架的核心包
//ReactDOM:专门做渲染相关的包
import React from 'react';
import ReactDOM from 'react-dom/client';

//应用的全局样式文件
import './index.css';
//引入根组件
import App from './App';
//渲染根组件APP到一个id为root的dom节点上
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <App />
)
//严格模式节点需要去掉
//会影响useEffect的 执行时机
//root.render(
 // <React.StrictMode>
 //   <App />
 // </React.StrictMode>
//);

 结构搭建好了,可以开始下一步学习 jsx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/878490.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

插槽Slot的作用和基本使用;具名插槽的使用;作用域插槽Slot使用;全局事件总线使用;依赖注入Provide/Inject

目录 1_插槽Slot的作用1.1_认识插槽Slot1.2_如何使用插槽slot1.3_插槽的默认内容1.4_多个插槽的效果 2_插槽Slot基本使用3_具名插槽的使用4_作用域插槽Slot使用4.1_渲染作用域4.2_认识作用域插槽4.3_独占默认插槽的缩写 5_全局事件总线使用5.1_全局事件总线mitt库5.2_使用事件总…

Java多线程编程中的线程间通信

Java多线程编程中的线程间通信 基本概念&#xff1a; ​ 线程间通信是多线程编程中的一个重要概念&#xff0c;指的是不同线程之间如何协调和交换信息&#xff0c;以达到共同完成任务的目的。 线程间通信的目的 ​ 是确保多个线程能够按照一定的顺序和规则进行协作&#xff…

二、linux虚拟机配置中文输入法和如何下载软件

&#xff08;一&#xff09;配置中文输入法&#xff1a; 1、sudo apt-get install fcitx&#xff0c;安装fcitx框架&#xff0c;安装完成之后&#xff0c;选择该框架 2、接下来输入sudo apt-get install fcitx fcitx-googlepinyin&#xff0c;安装谷歌输入法之后&#xff0c;重…

分布式 - 消息队列Kafka:Kafka 消费者消息消费与参数配置

文章目录 1. Kafka 消费者消费消息01. 创建消费者02. 订阅主题03. 轮询拉取数据 2. Kafka 消费者参数配置01. fetch.min.bytes02. fetch.max.wait.ms03. fetch.max.bytes04. max.poll.records05. max.partition.fetch.bytes06. session.timeout.ms 和 heartbeat.interval.ms07.…

ubuntu环境上搭建ros2

环境搭建 设置系统区域。 首先需要确保安装环境支持 UTF-8 格式 sudo apt install locales sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALLen_US.UTF-8 LANGen_US.UTF-8 export LANGen_US.UTF-8 locale添加 ROS2 的代码仓库 设置你的sources.list&#xff0…

leetcode 面试题 02.05 链表求和

⭐️ 题目描述 &#x1f31f; leetcode链接&#xff1a;面试题 02.05 链表求和 ps&#xff1a; 首先定义一个头尾指针 head 、tail&#xff0c;这里的 tail 是方便我们尾插&#xff0c;每次不需要遍历找尾&#xff0c;由于这些数是反向存在的&#xff0c;所以我们直接加起来若…

【Kubernetes】Kubernetes的PV和PVC的用法

PV、PVC 前言一、 存储卷1. emptyDir 存储卷1.1 概念1.2 实例 2. hostPath 存储卷2.1 概念2.2 实例 3. nfs共享存储卷 二、PV 和 PVC1. 概念1.1 PV1.2 PVC1.3 PVC 的使用逻辑1.4 创建机制1.5 PV 和 PVC 的生命力周期1.6 创建及销毁 PV 的流程 2. PV 和 PVC 的创建2.1 查看定义2…

PC-3000 Flash、Flash_Extractor、VNR信号的术语和编号 / 软件教程

PC-3000 Flash、Flash_Extractor、VNR信号的术语和编号 / 软件教程 PC-3000 Flash、Flash_Extractor、VNR信号的术语和编号 PC-3000 Flash、Flash_Extractor、VNR信号的术语和编号 许多客户在解决方案库中阅读整体方案时遇到问题。那么&#xff0c;如何正确读取它们并将内存芯片…

FinOps 应用入门指南

入门指南介绍 什么是 FinOps &#xff1f; FinOps 是一种云成本管理和优化的解决方案&#xff0c;并为组织、企业、团队提供了系统化的方法论&#xff0c;其中每个人都应该对自己的云资源成本负责。 FinOps 是“Finance”和“DevOps”的合成词&#xff0c;强调业务团队和研发…

因果推断(四)断点回归(RD)

因果推断&#xff08;四&#xff09;断点回归&#xff08;RD&#xff09; 在传统的因果推断方法中&#xff0c;有一种方法可以控制观察到的混杂因素和未观察到的混杂因素&#xff0c;这就是断点回归&#xff0c;因为它只需要观察干预两侧的数据&#xff0c;是否存在明显的断点…

秒杀库存解决方案

电商系统中秒杀是一种常见的业务场景需求&#xff0c;其中核心设计之一就是如何扣减库存。本篇主要分享一些常见库存扣减技术方案&#xff0c;库存扣减设计选择并非一味追求性能更佳&#xff0c;更多的应该考虑根据实际情况来进行架构取舍。在商品购买的过程中&#xff0c;库存…

8.14 ARM

1.练习一 .text 文本段 .global _start 声明一个_start函数入口 _start: _start标签&#xff0c;相当于C语言中函数mov r0,#0x2mov r1,#0x3cmp r0,r1beq stopsubhi r0,r0,r1subcc r1,r1,r0stop: stop标签&#xff0c;相当于C语言中函数b stop 跳转到stop标签下的第一条…

Maven 基础之依赖管理、范围、传递、冲突

文章目录 关于依赖管理坐标和 mvnrepository 网站pom.xml 中"引"包 依赖范围依赖传递依赖冲突 关于依赖管理 坐标和 mvnrepository 网站 在 maven 中通过『坐标』概念来确定一个唯一确定的 jar 包。坐标的组成部分有&#xff1a; 元素说明<groupId>定义当前…

2023国赛数学建模思路 - 复盘:光照强度计算的优化模型

文章目录 0 赛题思路1 问题要求2 假设约定3 符号约定4 建立模型5 模型求解6 实现代码 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 问题要求 现在已知一个教室长为15米&#xff0c;宽为12米&…

HTB-Keeper

HTB-Keeper 信息收集80端口 lnorgaardroot 信息收集 80端口 80主页给了一个跳转的链接 跟随链接后到了一个登陆界面。 尝试搜索默认密码。 通过账号root:password登录。不知道为什么我登陆了两次才成功。 通过搜索在Admin->Users->Select里面发现了用户信息。 lno…

安全 1自测

常见对称加密算法&#xff1a; DES&#xff08;Data Encryption Standard&#xff09;&#xff1a;数据加密标准&#xff0c;速度较快&#xff0c;适用于加密大量数据的场合&#xff1b; 3DES&#xff08;Triple DES&#xff09;&#xff1a;是基于DES&#xff0c;对一块数据用…

HashMap源码 学习日志

我们先看一下默认的 HashMap的设置 什么是 加载因子&#xff1f; HashMap的底层是哈希表&#xff0c;是存储键值对的结构类型&#xff0c;它需要通过一定的计算才可以确定数据在哈希表中的存储位置&#xff1a; static final int hash(Object key) {int h;return (key nul…

Tree相关

1.树相关题目 1.1 二叉树的中序遍历&#xff08;简单&#xff09;&#xff1a;递归 题目&#xff1a;使用中序遍历二叉树 思想&#xff1a;按照访问左子树——根节点——右子树的方式遍历这棵树&#xff0c;而在访问左子树或者右子树的时候我们按照同样的方式遍历&#xff0…

如何选择适合企业的文档在线管理系统?

在当今数字化时代&#xff0c;企业文档承载了大量的信息和数据&#xff0c;因此选择适合企业的文档在线管理系统至关重要。一个合适的文档管理系统可以提高工作效率、加强信息安全和团队协作能力&#xff0c;下面将介绍如何选择适合企业的文档在线管理系统。 1. 功能需求 首先…

全网小说下载器,只需书名,一键下载(Python爬虫+tkinter 实现)小白实战案例系统教学!

大家好&#xff0c;我是小曼呐 前言 ttkbootstrap是一个基于Python的开源库&#xff0c;用于创建漂亮且交互式的GUI应用程序。它是在Tkinter框架之上构建的&#xff0c;提供了一系列的Widget组件和样式&#xff0c;可以帮助开发者快速构建现代化的用户界面。 今天做的是这个…