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

React 教程

 学习主要来源 React 教程 | 菜鸟教程 

React 是一个用于构建用户界面的 JAVASCRIPT 库。

React 主要用于构建 UI,很多人认为 React 是 MVC 中的 V(视图)。

React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。

React 拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。

React 特点

  • 1.声明式设计 −React采用声明范式,可以轻松描述应用。

  • 2.高效 −React通过对DOM的模拟,最大限度地减少与DOM的交互。

  • 3.灵活 −React可以与已知的库或框架很好地配合。

  • 4.JSX − JSX 是 JavaScript 语法的扩展。React 开发不一定使用 JSX ,但我们建议使用它。

  • 5.组件 − 通过 React 构建组件,使得代码更加容易得到复用,能够很好的应用在大项目的开发中。

  • 6.单向响应的数据流 − React 实现了单向响应的数据流,从而减少了重复代码,这也是它为什么比传统数据绑定更简单。

React 安装

通过 npm 使用 React

国内使用 npm 速度很慢,你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

npm install -g cnpm --registry=https://registry.npmmirror.com

npm config set registry https://registry.npmmirror.com

使用 create-react-app 快速构建 React 开发环境

create-react-app 是来自于 Facebook,通过该命令我们无需配置就能快速构建 React 开发环境。

create-react-app 自动创建的项目是基于 Webpack + ES6 。

执行以下命令创建项目:

npm install -g create-react-app

 

处理 tar@2.2.2 警告: 由于 tar@2.2.2 警告是由 create-react-app 的依赖引起的,直接操作可能较为复杂,因为它涉及到包的依赖链。通常,最佳做法是检查是否有 create-react-app 的更新版本,或者相关依赖库的更新版本,这些版本可能已解决了使用过时 tar 包的问题。

关于 npm fundnpm fund 命令显示的信息是关于你项目依赖的开发者寻求资金支持的信息。这提供了一个机会去支持那些对你的项目有贡献的开源软件开发者。这些信息并不直接关联到 tar@2.2.2 的警告,但它给出了哪些包及其维护者可能需要经济支持的信息。

建议

  • 如果你仍然想在本地安装 create-react-app,可以忽略这个 tar@2.2.2 的警告,因为它不太可能影响开发环境的安全性。然而,保持警惕并定期检查是否有可用的安全更新是一个好习惯。
  • 考虑使用 npx create-react-app my-app-name 命令来创建新的 React 应用,这样可以避免将 create-react-app 安装到你的本地或全局环境中,同时也能确保你使用的是最新版本。
  • 关注 create-react-app 和其他相关依赖的更新,以确保你的开发环境尽可能安全。

 npx create-react-app my-app-name


 cd my-app-name

npm start

 

启动成功

项目的目录结构如下:

my-app/README.mdnode_modules/package.json.gitignorepublic/favicon.icoindex.htmlmanifest.jsonsrc/App.cssApp.jsApp.test.jsindex.cssindex.jslogo.svg

 

manifest.json 指定了开始页面 index.html,一切的开始都从这里开始,所以这个是代码执行的源头。

尝试修改 src/App.js 文件代码:

import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';class App extends Component {render() {return (<div className="App"><div className="App-header"><img src={logo} className="App-logo" alt="logo" /><h2>欢迎来到菜鸟教程</h2></div><p className="App-intro">你可以在 <code>src/App.js</code> 文件中修改。</p></div>);}
}export default App;

 

src/index.js 是一个入口文件,我们可以尝试直接修改 src/index.js 文件代码: 

import React from 'react';
import ReactDOM from 'react-dom';

function Hello(props) {
  return <h1>Hello World!</h1>;
}

ReactDOM.render(<Hello />, document.getElementById('root'));

 

相关文章:

  • windows环境,gitbash可以连接拉取代码,但是idea没有权限
  • C#,红黑树(Red-Black Tree)的构造,插入、删除及修复、查找的算法与源代码
  • 离子束铣削(Ion Beam milling)
  • 惬意了解 —— 前端发展史
  • 【敬伟ps教程】视频动画
  • LeetCode 面试题08.04.幂集
  • FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr
  • 30个Linux性能问题诊断思路
  • 【构建部署_Docker介绍与安装】
  • 【框架学习 | 第六篇】SpringBoot基础篇(快速入门、自动配置原理分析、配置文件、整合第三方技术、拦截器、文件上传/下载、访问静态资源)
  • 使用yarn创建vite+vue3electron多端运行
  • 【C语言】人生重开模拟器
  • Elasticsearch使用Kibana进行基础操作
  • Python部署:将硬件(摄像头与热成像传感器)集成到实际应用中
  • 线程与进程的区别、协程
  • 【剑指offer】让抽象问题具体化
  • JavaScript设计模式之工厂模式
  • Logstash 参考指南(目录)
  • react-native 安卓真机环境搭建
  • vue2.0项目引入element-ui
  • 你不可错过的前端面试题(一)
  • 使用 QuickBI 搭建酷炫可视化分析
  • 数组的操作
  • 怎样选择前端框架
  • mysql面试题分组并合并列
  • 第二十章:异步和文件I/O.(二十三)
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • #if #elif #endif
  • #宝哥教你#查看jquery绑定的事件函数
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (5)STL算法之复制
  • (java)关于Thread的挂起和恢复
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (十八)三元表达式和列表解析
  • (转)linux 命令大全
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .aanva
  • .apk文件,IIS不支持下载解决
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net IOC框架入门之一 Unity
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .Net中的集合
  • @transaction 提交事务_【读源码】剖析TCCTransaction事务提交实现细节
  • [C++]类和对象(中)
  • [C++]命名空间等——喵喵要吃C嘎嘎
  • [Deepin 15] 编译安装 MySQL-5.6.35
  • [DM复习]关联规则挖掘(下)
  • [ERROR]-Error: failure: repodata/filelists.xml.gz from addons: [Errno 256] No more mirrors to try.
  • [ffmpeg] 定制滤波器
  • [jobdu]不用加减乘除做加法
  • [LaTex]arXiv投稿攻略——jpg/png转pdf
  • [LeetCode]Balanced Binary Tree