React——配置环境、ES6语法补充、Components

文章目录

  • 架构设计
  • 前置知识
    • DOM树
  • 配置环境
    • 安装 create-react-app
    • 安装两个插件
    • 创建
    • 安装 nodejs
    • 仍然无法创建
  • 下次需要创建新项目就使用这三行命令
  • 安装 bootstrap
  • 使用 bootstrap 包
  • 画图
  • 追求
  • 写 jsx
  • 短路原则
  • 绑定函数
  • 快捷键修改变量名
  • 箭头函数简写
  • 删除无用的文件
  • 写组件
  • 调用组件
  • 使用 bootstrap 构建一个表单
  • 绑定删除函数
  • 添加
  • 结语

架构设计

一图胜千言

React
配置环境
react
nodejs
npm
create-react-app
solution-app
terminal
box-app
ES6语法
Compoments

前置知识

DOM树

DOM(Document Object Model,文档对象模型)树指的是用来表示网页文档结构的一种树形数据结构。它将整个 HTML 文档以树的形式进行抽象和表示,使得 JavaScript 可以通过 DOM 接口来操作网页的内容、结构和样式。

配置环境

这个算是比较头疼的,其实有一些自己之前装过了
react官网

本地有 powershell ,不需要额外装终端,比较开心,虽然已经装了 git bash

nodejs 和 git bash 可能很多地方都需要用到,自己之前搭建个人博客网站的时候使用过这两个工具

安装 create-react-app

在这里插入图片描述

npm i -g create-react-app

安装两个插件

Simple React Snippets,Prettier - Code formatter,目前笔者 vscode 因为写前端装了一些插件,然后中文插件,还有 git 插件,总共装了九个插件

新装的这两个插件主要是帮助自动补全和代码高亮的

创建

在这里插入图片描述
提示我需要更新 nodejs 版本

安装 nodejs

安装地址
在这里插入图片描述
我现在在 c 盘新建了一个文件夹专门存放各种新装的软件,刚刚勾选了让软件自己安装它需要的相关工具(自己也算看得懂几句英文哈哈)
在这里插入图片描述
现在疯狂装一堆东西,早知道不选这个选项了,其实我最担心的是安装的时候没有选环境变量这个选项,假设还需要自己设置环境变量,就非常无奈了(我现在看到环境变量还是非常害怕,虽然操作过几次环境变量了,但是还是感觉不是很熟练)
在这里插入图片描述
喜出望外哈哈哈

仍然无法创建

在这里插入图片描述

create-react-app react-app

用 power shell 也不行
在这里插入图片描述
有可能是因为删除了 nodejs 重新安装了,之前安装的 react 需要重新安装一次
在这里插入图片描述
满屏的 error

使用管理员模式安装试试
在这里插入图片描述
提示我 npm 版本过低,现在安装一个新版本的 npm

 npm install -g npm@10.8.2

在这里插入图片描述
还是报错

试一下下面这篇博客的解决办法
博客,还是解决不了在这里插入图片描述
React v5.0.8——下载和安装过程:看一下这个,这个第一条命令就报错了

  • 修改镜像源
npm config set registry https://registry.npm.taobao.org

还是没有解决
在这里插入图片描述

npx create-react-app react-app

试了一下也没有用

  • 工程课 Web-5.1. 配置环境、ES6语法补充、Components :看一下这个,没有解决
  • 如何使用 create-react-app 安装 React.js
  • NPM(Node 包管理器)
  • 现在去官网看一下怎么安装,官网说不需要安装就可以体验,不是很靠谱

npm error Error: EPERM: operation not permitted, open ‘C:\new_app\node-v11.0.0-win-x64\node_cache_cacache\index-v5\00\c2\77c04a67c72d7e54a9a73f181e946b8889e2250d5589aeceaebfa3454bf7’

npm warn deprecated inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
npm warn deprecated fstream-ignore@1.0.5: This package is no longer supported.
npm warn deprecated uid-number@0.0.6: This package is no longer supported.
npm warn deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported
npm warn deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm warn deprecated fstream@1.0.12: This package is no longer supported.
npm warn deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.

搜了很多帖子都没有解决这个问题,这是为什么呢?

我先把整个教程全部看一遍再来跟着操作

不着急,一定是可以把这个问题解决的

不行,不能直接过掉,现在就努力解决这个问题

C:\new_app\node-v11.0.0-win-x64\node_cache_logs
比较简单直接的方法就是把安装好的全部删除掉,然后重新安装一遍,应该确实能解决问题,人一我十

刚刚把之前安装的低版本的 nodejs 的环境变量删除了,之前安装的时候没有好好看英文,可能是因为之前的 nodejs 没有完全卸载

不把新装的 nodejs 安装到之前安装旧版本的 nodejs 里面,貌似比较正常了,现在正在安装 react ,但是比较缓慢,在这里插入图片描述
果然还是不行
在这里插入图片描述
react中文社区
npm报错:request to https://registry.npm.taobao.org failed, reason certificate has expired:参考这个解决了

npx create-react-app my-app

在这里插入图片描述
在这里插入图片描述
成功了!!!

下次需要创建新项目就使用这三行命令

npx create-react-app my-app #my-app 是自己随便取得名字
cd my-app
npm start

在这里插入图片描述
不过新建一个 app 是真的比较慢,等的花都谢了

安装 bootstrap

比较开心,算是跨过一小个门槛,按 ctrl + ` ,可以打开 vscode 的命令行

npm i bootstrap

每一个项目之间都是独立的,这个包是独立的安装在项目文件里面

  • 在 index.js 里面调用这个包
import 'bootstrap/dist/css/bootstrap.css'

使用 bootstrap 包

在浏览器收藏这个网址:bootstrap,需要使用什么样式的时候,可以在里面搜索,因为 class 是一个 html 里面的关键字,在 react 里面可以用 className 来代替

render() { return (<React.Fragment><div>{this.toString()}</div><button className='btn btn-primary'>left</button><button className='btn btn-danger'>right</button></React.Fragment>);}

在这里插入图片描述

画图

画出三张图,分别是流程图,UML(类图),还有数据库模型图DMD,来帮助我们第二次独立自己开发项目

之前自己学软件体系结构,软件工程的时候对这些东西不以为然,现在确实感觉到这些图的重要性,这个算是一个架构的作用,可以帮助我们形成一个整体的思维,其实和思维导图什么的比较像

追求

在这里插入图片描述
追求就是无错误无警告

写 jsx

凡是用到 map 函数的时候,需要定义一个 key ,因为 map 函数是 key-value 键值对

短路原则

&& 连接起来的表达式,前面只要出现了 false 就不用判断后面的了,很多时候很多事情都是这样子哈哈哈,比如说女神要求她的男朋友是高富帅,这个条件不符合,你说你性格好啥的,可能不太管用了
在这里插入图片描述
|| 也是一样,也是短路原则,判断的是第一个为真的表达式,假设前面的全部为假,那就返回最后一个表达式,也比较好理解,女神在一个接一个的追求者中选择一个她认为是真的男朋友,一旦选择了一个真(命天子)之后,一段时间之内就不会再选择其他的了,哪怕后面还有真,哈哈哈

绑定函数

执行函数的时候需要在函数名后面加上小括号,绑定函数的时候不需要加小括号

  • 箭头函数可以使得这个函数里面的 this 是我们需要的 this ,或者换句话说就是我们当前使用的
 handleClickLeft=()=>{console.log("click left",this);}

快捷键修改变量名

选中该变量名,按 F2 ,修改完成之后按回车,即可实现全局的变量修改,最近学软件开发,学了一堆的快捷键哈哈

箭头函数简写

  • 去掉大括号,分号,return (在该函数只有一句话的时候)
<button onClick={()=> this.handleClickLeft(10)} className='btn btn-primary m-5'>left</button>
<button onClick={()=> this.handleClickRight(10)} className='btn btn-danger'>right</button>

删除无用的文件

在这里插入图片描述
选中的文件是暂时用不上的文件,但是不要轻易自己乱尝试快捷键,我刚刚用 ctrl +d 没有删除,按 ctrl + shift +d ,把整个文件夹都给删掉了

public 里面的 index.html 里面的注释代码也可以删除

在 src 里面创建一个文件夹,components ,里面新建一个文件 solution.jsx ,src 表示的是源文件的意思

自动生成的 app 相关的文件和引用都可以删除

import reportWebVitals from './reportWebVitals';
reportWebVitals();

上面这一行也删除,暂时都用不到,都先删除
在这里插入图片描述
ctrl +u 查看网页源代码
在这里插入图片描述

可以看到 react 帮我们把代码打包成了一个 js 代码,我们自己写的时候是有很多 js 代码的,和之前写 django 项目的时候有一个打包的脚本文件,把所有的 js 打包估计差不多

写组件

imrc
cc

输入上面的缩写,剩下的交给 vscode 自动补全

import React, { Component } from 'react';
class Solution extends Component {state = {  } render() { return <h1>hello world</h1>;}
}export default Solution;

调用组件

import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import Solution from './components/solution';const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(<React.StrictMode><Solution/></React.StrictMode>
);

使用 bootstrap 构建一个表单

在这里插入图片描述

state = { solutions:[{key:0,number:1160,title:"加工零件0",views:1230,},{key:1,number:1161,title:"加工零件1",views:1231,},{key:2,number:1162,title:"加工零件2",views:1232,},{key:3,number:1163,title:"加工零件3",views:1233,},{key:4,number:1164,title:"加工零件4",views:1234,},{key:5,number:1165,title:"加工零件5",views:1235,},{key:6,number:1166,title:"加工零件6",views:1236,},{key:7,number:1167,title:"加工零件7",views:1237,},]} render() { return <table className="table"><thead><tr><th>#</th><th>标题</th><th>阅读数</th><th>编辑</th></tr></thead><tbody>{this.state.solutions.map(solution=>(<tr key={solution.key}><td>{solution.number}</td><td>{solution.title}</td><td>{solution.views}</td><td><button className='btn btn-danger'>删除</button></td></tr>))}</tbody></table>;

绑定删除函数

实现删除操作

handleDelete=(s)=>{const solutions=this.state.solutions.filter(solution=>solution!==s);this.setState({solutions}); }

调用删除函数

<td><button onClick={()=>this.handleDelete(solution)} className='btn btn-danger'>删除</button></td>

添加

函数名还有调用都没有改,只是改了一下函数里面的内容,… 表示展开,因为没有输入框,所以每一次输入都是添加一个固定的元素

handleDelete=(s)=>{const solutions=[...this.state.solutions,{key:18,number:1172,title:"hhh",views:666,}];this.setState({solutions});}

所以可以看出来,可以用一些库里面定义好的样式写出比较漂亮的样式,react 可能在写前端页面的时候比较好用,在写前端应用,逻辑比较复杂的时候,其实是没有什么优势的

结语

『沾衣欲湿杏花雨,吹面不寒杨柳风。』—— 志南「绝句·古木阴中系短篷」

对方正在输入,备注,对方正在输入;
…(3分钟后);
在吗?

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能与机器学习原理精解【11】

文章目录 广义线性模型基础理论泊松分布的基本公式一、基本公式二、泊松分布的特点三、泊松分布的应用场景四、泊松分布与二项分布的关系五、总结 泊松回归例子1例子背景模型设定数据收集模型拟合结果解释预测应用场景 泊松回归例子2背景数据准备模型设定模型拟合结果解释预测 …

Prometheus-部署

Prometheus-部署 Server端安装配置部署Node Exporters监控系统指标监控MySQL数据库监控nginx安装grafana Server端安装配置 1、上传安装包&#xff0c;并解压 cd /opt/ tar xf prometheus-2.30.3.linux-amd64.tar.gz mv prometheus-2.30.3.linux-amd64 /usr/local/prometheus…

TypeScript 简介及安装

文档 typeScript官网中文文档&#xff1a;https://www.tslang.cn/index.html中文文档(简洁点)&#xff1a;https://typescript.bootcss.comMDN 概述 TypeScript 是以JavaScript为基础构建的语言。 TypeScript 是一个为 JavaScript 添加静态类型检查的编程语言。 TypeScrip…

自动化测试与手动测试的区别!

自动化测试与手动测试之间存在显著的区别&#xff0c;这些区别主要体现在以下几个方面&#xff1a; 测试目的&#xff1a; 自动化测试的目的在于“验证”系统没有bug&#xff0c;特别是在系统处于稳定状态时&#xff0c;用于执行重复性的测试任务。 手工测试的目的则在于通过…

git配置环境变量

一.找到git安装目录 打开此git安装目录下的bin文件&#xff0c;复制此文件路径 二.配置环境变量 2.1 右键点击此电脑的属性栏 2.2 点击高级系统配置 2.3 点击环境变量 2.4 按图中步骤进行配置 三.配置完成 win r 输入cmd打开终端 终端页面中输入 git --version 如图所示…

如何将WordPress文章中的外链图片批量导入到本地

在使用采集软件进行内容创作时&#xff0c;很多文章中的图片都是远程链接&#xff0c;这不仅会导致前端加载速度慢&#xff0c;还会在微信小程序和抖音小程序中添加各种域名&#xff0c;造成管理上的麻烦。特别是遇到没有备案的外链&#xff0c;更是让人头疼。因此&#xff0c;…

kafka高性能的底层原理分析

目录 1.磁盘顺序写 2.零拷贝 3.数据压缩 4.消息批量处理 5.pageCache 6.稀疏索引 总结 Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。那么他是如何做到高性能的呢&#xff0c;本篇文章从宏观上分析一下&#xff…

alibabacloud学习笔记12

Docker介绍和使用场景 讲解阿里云ECS服务安装Docker实战 遇到这个报错可以执行&#xff1a; 执行这个docker info出这个就证明docker关闭成功。 快速掌握Dokcer基础知识 掌握Docker容器常见命令 查看本地已有镜像&#xff1a; 拉取镜像&#xff1a; 可以查到刚才拉取的镜像。 …

028-GeoGebra中级篇-脚本的初步的探索

GeoGebra 的脚本功能允许用户通过不同的触发机制&#xff08;如点击、更新、输入框变化、拖动结束&#xff09;和全局 JavaScript 自定义图形和交互行为&#xff0c;实现动态数学模型和用户交互&#xff0c;同时 ggbOnInit() 函数可在应用初始化时设置默认状态&#xff0c;提供…

构建基于数据驱动的应用程序与Llamaindex——理解大型语言模型

如果你在阅读这本书&#xff0c;你可能已经探索过大型语言模型&#xff08;LLMs&#xff09;的领域&#xff0c;并且已经认识到它们的潜在应用以及它们的缺陷。本书旨在解决LLMs所面临的挑战&#xff0c;并提供一本实用指南&#xff0c;教你如何使用LlamaIndex构建数据驱动的LL…

【通俗理解】自由能与自由意志的桥梁——从物理到哲学的跨越

【通俗理解】自由能与自由意志的桥梁——从物理到哲学的跨越 自由能与自由意志的类比 你可以把自由能比作一个“能量货币”&#xff0c;它代表着系统能够用来做功的能量。而自由意志则是一个“选择的能力”&#xff0c;它代表着个体在做出决策时的自主性和可能性。 自由能与自由…

HCIA总结

一、情景再现&#xff1a;ISP网络为学校提供了DNS服务&#xff0c;所以&#xff0c;DNS服务器驻留在ISP网络内&#xff0c;而不再学校网络内。DHCP服务器运行在学校网络的路由器上 小明拿了一台电脑&#xff0c;通过网线&#xff0c;接入到校园网内部。其目的是为了访问谷歌网站…

基于 SASL/SCRAM 让 Kafka 实现动态授权认证

一、说明 在大数据处理和分析中 Apache Kafka 已经成为了一个核心组件。然而在生产环境中部署 Kafka 时&#xff0c;安全性是一个必须要考虑的重要因素。SASL&#xff08;简单认证与安全层&#xff09;和 SCRAM&#xff08;基于密码的认证机制的盐化挑战响应认证机制&#xff…

搭建自己的金融数据源和量化分析平台(四):自动化更新上市公司所属一级、二级行业以及股票上市状态

前面做了更新沪深交易所的上市股票列表的读取和更新&#xff0c;但一旦股票退市则需要在数据库里将该股票状态更新为退市&#xff0c;同时附上退市日期&#xff0c;将股票名更改为XX退。 此外深交所下载的xls解析出来是没有上市公司所属的二级行业的&#xff0c;因此还需要建立…

魔众文库-PHP文库管理系统

魔众文库是一套基于PHPMYSQL开发的适用于多平台的文档管理系统&#xff0c;提供doc、ppt、excel、pdf、压缩包、图片、CAD 等资源的在线预览和下载&#xff0c;文件被转换为H5或图片格式&#xff0c;文字放大无失真&#xff0c;响应速度更快速对SEO更友好&#xff0c;收录更快、…

【第二节】python编程基础语法

目录 一、运算符介绍 1.1 算术运算符 1.2 比较运算符 1.3 赋值运算符 1.4 位运算符 1.5 逻辑运算符 1.6 成员运算符 1.7 身份运算符 二、python运算符优先级 三、三大流程结构 四、列表 五、元组 六、字典 一、运算符介绍 1.1 算术运算符 1.2 比较运算符 1.3 赋值…

【传输层协议】UDP和TCP协议

UDP协议 UDP协议全称为User Datagram Protocol&#xff0c;用户数据报协议。UDP协议报文格式如下&#xff1a; 16UDP长度。表示整个数据报的最大长度&#xff0c;即UDP首部UDP数据。这个字段帮助我们确保在网络字节流中获取完整的UDP报文信息。校验和&#xff1a;用于检测数…

巴斯勒相机(Basler) ACE2 dart 系列说明和软件

巴斯勒相机(Basler) ACE2 dart 系列说明和软件

C语言指针·入门用法超详解

目录 1. 什么是指针 2. 指针变量的定义格式 3. 指针的作用 3.1 查询数据 3.2 存储数据&#xff08;修改数据&#xff09; 3.3 操作其他函数中的变量 3.4 函数返回多个值 3.5 函数的结果和计算状态分开 1. 什么是指针 通过内存地址&#xff0c;指向的空间&#…

vue3后台管理系统 vue3+vite+pinia+element-plus+axios上

前言 项目安装与启动 使用vite作为项目脚手架 # pnpm pnpm create vite my-vue-app --template vue安装相应依赖 # sass pnpm i sass # vue-router pnpm i vue-router # element-plus pnpm i element-plus # element-plus/icon pnpm i element-plus/icons-vue安装element-…