前端react入门day01-了解react和JSX基础

news2024/11/23 15:37:02

 (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

目录

React介绍 

React是什么

React的优势 

React的市场情况 

开发环境搭建 

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

尝试运行程序 

react基本框架 

index.js

App.js

JSX基础-概念和本质

什么是JSX

JSX的本质

JSX基础-高频场景

JSX中使用JS表达式

JSX中实现列表渲染 

JSX中实现条件渲染


React介绍 

React是什么

React由Meta公司研发,是一个用于 构建Web和原生交互界面的库

React的优势 

相较于传统基于DOM开发的优势

      

相较于其它前端框架的优势

          

React的市场情况 

全球最流行,大厂必备

开发环境搭建 

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

create-react-app是一个快速 创建React开发环境的工具,底层由Webpack构建,封装了配置细节,开箱即用

执行命令:

npx create-react-app react-basic

1. npx Node.js工具命令,查找并执行后续的包命令

2. create-react-app 核心包(固定写法),用于创建React项目

3. react-basic React项目的名称(可以自定义)

尝试运行程序 

运行界面如下:

react基本框架 

index.js

//项目的入口 从这里开始运行

//react必要的两个核心包
import React from 'react';
import ReactDOM from 'react-dom/client';

//导入项目的根组件
import App from './App';
import reportWebVitals from './reportWebVitals';

//将App根组件渲染到id为root的dom节点上
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>
);

App.js

//项目根组件

function App() {
  return (
    <div className="app">
      this is app
    </div>
  );
}

export default App;

JSX基础-概念和本质

什么是JSX

概念:JSX是JavaScript和XML(HTML)的缩写,表示在JS代码中编写HTML模版结构,它是React中编写UI模版的方式

优势:

1. HTML的声明式模版写法 2. JS的可编程能力 

JSX的本质

JSX并不是标准的JS语法,它是JS的语法扩展,浏览器本身不能识别,需要通过解析工具做解析之后才能在浏览器中运行

JSX基础-高频场景

JSX中使用JS表达式

在JSX中可以通过 大括号语法{} 识别 JavaScript中的表达式,比如常见的变量、函数调用、方法调用等等

1. 使用引号传递字符串

2. 使用JavaScript变量

3. 函数调用和方法调用

4. 使用JavaScript对象

注意:if语句、switch语句、变量声明属于语句,不是表达式,不能出现在{}中

// 项目的根组件
// App -> index.js -> public/index.html(root)

const count = 100

function getName () {
  return 'jack'
}

function App () {
  return (
    <div className="App">
      this is App
      {/* 使用引号传递字符串 */}
      {'this is message'}
      {/* 识别js变量 */}
      {count}
      {/* 函数调用 */}
      {getName()}
      {/* 方法调用 */}
      {new Date().getDate()}
      {/* 使用js对象 */}
      <div style={{ color: 'red' }}>this is div</div>
    </div>
  )
}

export default App

网页显示为:

JSX中实现列表渲染 

语法:在JSX中可以使用原生JS中的map方法遍历渲染列表


const list = [
  { id: 1001, name: 'Vue' },
  { id: 1002, name: 'React' },
  { id: 1003, name: 'Angular' }
]

function App () {
  return (
    <div className="App">
      this is App
      {/* 渲染列表 */}
      {/* map 循环哪个结构 return结构 */}
      {/* 注意事项:加上一个独一无二的key 字符串或者number id */}
      {/* key的作用:React框架内部使用 提升更新性能的 */}
      <ul>
        {list.map(item => <li key={item.id}>{item.name}</li>)}
      </ul>
    </div>
  )
}

export default App

网页显示为:             

JSX中实现条件渲染

语法:在React中,可以通过逻辑与运算符&&、三元表达式(?:)实现基础的条件渲染

const isLogin = true

function App () {
  return (
    <div className="App">
      {/* 逻辑与 && */}
      {isLogin && <span>this is span</span>}
      {/* 三元运算 */}
      {isLogin ? <span>jack</span> : <span>loading...</span>}
    </div>
  )
}

export default App

网页显示为:       

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

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

相关文章

windows系统mysql服务无法启动

### 原因 电脑重启navicat连接mysql失败&#xff0c;在电脑-管理-服务中没有mysql服务 ### 解决方案 1. 找到mysql的安装目录进入bin目录 2. 执行mysqld --install 进行重新安装 提示服务安装成功 3. net start mysql mysql 启动成功

【工作中用到的功能-windows篇】自用备忘

文章目录 利用性能监视器查看内存使用情况历史记录 利用性能监视器查看内存使用情况历史记录 直接通过任务管理器CtrlshiftESC或者资源监视器winr resmon只能看到实时情况&#xff0c;没法查看历史使用情况。 perfmon添加监控方法&#xff1a; winr perfmon打开性能监视器 新…

同为科技(TOWE)工业级多位USB快充桌面PDU插座

如今&#xff0c;许多便捷式、轻薄化电子设备越来越多&#xff0c;很多设备上预留的端口越来越少&#xff0c;甚至很多款笔记本电脑只预留了一个单一的Type-C接口。这样做虽然在体验感、美观度和轻薄尺寸的优势显而易见&#xff0c;然而也存在接口不足的明显弊端。USB快充插排产…

浙江大学利用 SVM 优化触觉传感器,盲文识别率达 96.12%

生物传感是人类与机器、人类与环境、机器与环境交互的重要媒介。其中&#xff0c;触觉能够实现精准的环境感知&#xff0c;帮助使用者与复杂环境交互。 为模仿人类的触觉&#xff0c;科研人员开发了各种传感器&#xff0c;以模拟皮肤对环境的感知。然而&#xff0c;触觉传感的要…

【Mongo】数据删了磁盘空间但没有减少

Author:skate Time:2023/10/22 一、问题描述 产线用户反馈&#xff0c;一个华为云的mongo实例磁盘空间告警&#xff0c;使用率超过90%&#xff08;使用状况 1630.9/1800GB&#xff09;&#xff0c;让其通过数据库运维平台找到占用大空间的表&#xff0c;然后清理历史数据&…

zabbix安装部署笔记

记一次zabbix安装部署过程&#xff0c;由于各版本配置的文件系统不同&#xff0c;以及出现许多意外的出错。 一、安装&#xff1a; 安装很简单&#xff0c;直接apt-get安装。 #服务器 apt-get install zabbix-server-mysql #web apt-get install zabbix-frontend-php #客户…

RHCE8 资料整理(三)

RHCE8 资料整理 第三篇 网络相关配置第11章 网络配置11.1 网络基础知识11.2 查看网络信息11.3 图形化界面修改11.4 通过配置文件修改11.5 命令行管理11.6 主机名的设置 第12章 ssh12.1 ssh基本用法12.2 打开远程图形化界面12.3 ssh无密码登录12.4 ssh安全设置12.5 ssh限制用户1…

【python】--python环境安装及配置

目录 一、python开发环境部署1、下载安装Miniconda2、python环境3、进入或退出python环境4、对应python环境安装工具/库5、进入pyhton环境&#xff0c;查看已安装的工具/库6、安装pycharm专业版7、pycharm创建项目并关联python版本环境 一、python开发环境部署 要安装一个pyth…

Amazonlinux2023(AL2023)获取metadata

今年AWS发布了新的Amazonlinux2023版本&#xff0c;其中获取metadata元数据方式发生了一点改变。 早些时候&#xff0c;在 Amazon Linux 2 中&#xff0c;使用以下命令获取实例元数据 http://169.254.169.254/latest/meta-data/ 具体可以获取的元数据类别可以查阅如下aws官方…

win7录屏软件哪个好用?盘点3款实用软件

在当今科技迅猛发展的时代&#xff0c;录屏已经成为了教育、演示和内容创作的重要工具。对于使用windows 7操作系统的用户来说&#xff0c;选择合适的录屏软件至关重要。可是win7录屏软件哪个好用呢&#xff1f;在本文中&#xff0c;我们将介绍3款常用的win7录屏软件。通过比较…

软件界面设计培训

&#xff08;注&#xff0c;这是我2006年写的&#xff0c;或许是个缅怀&#xff0c;或许是个吐槽。原稿就是PPT&#xff0c;内容都在这里。所有“注”都是本次发表增加的。所有这些原则&#xff0c;并不仅仅是关于界面的&#xff0c;而是关于所有程序设计和任何事情的。&#x…

hvv蓝初 看完可去 面试可用 面经

护网蓝队&#xff08;初级&#xff09; 主要是会看各种攻击payload&#xff0c;注意常见的payload 练习各种漏洞的利用方法&#xff0c;学会看利用漏洞的请求长什么样&#xff0c;payload长什么样&#xff0c;payload长什么样 给个请求包&#xff0c;能不能认出来是攻击流量&am…

成都优优聚代运营:打造精细化运营新标杆

成都优优聚美团代运营服务&#xff0c;凭借其专业的团队、优质的服务以及丰富的经验&#xff0c;已经在美团平台崭露头角&#xff0c;成为众多商家的首选代运营服务商。 一、专业团队&#xff0c;打造精细化运营 成都优优聚美团代运营服务拥有一支专业的运营团队&#xff0c;成…

使用 Requests 库和 PHP 的下载

以下是一个使用 Requests 库和 PHP 的下载器程序&#xff0c;用于从 www.people.com.cn 下载音频。此程序使用了 https://www.duoip.cn/get_proxy 这段代码。 import requests from bs4 import BeautifulSoup import pafy import timedef get_proxy():url "https://www.…

预付费多用户电能管理系统的设计与应用

【摘要】&#xff1a;该设计解决了IC卡预付费电能表存在的问题&#xff0c;同时继承了先购电后用电的管理模式。电力部门的管理微机通过RS485网络对电能表进行管理&#xff0c;以防止用户窃电&#xff1b;选用射频卡作为用户卡以解决IC卡易被污染和损坏的问题。 【关键词】&am…

算法leetcode|85. 最大矩形(rust重拳出击)

文章目录 85. 最大矩形&#xff1a;样例 1&#xff1a;样例 2&#xff1a;样例 3&#xff1a;样例 4&#xff1a;样例 5&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 85. 最…

零基础Linux_21(多线程)页表详解+轻量级进程+pthread_create

目录 1. 页表详解 1.1 权限条目页框 1.2 页目录页表项 2. 线程的概念 2.1 轻量级进程 2.2 Linux的线程 2.3 pthread_create 2.4 原生线程库LWP和PID 3. 线程的公有资源和私有资源 3.1 线程的公有资源 3.2 线程的私有资源 4. 线程的优缺点 4.1 线程的优点 4.2 线程…

LLM 新缺陷曝光,自我纠正成功率仅 1%;苹果超 95% 产品仍在中国制造丨 RTE 开发者日报 Vol.72

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

JSX 条件渲染

学习目标&#xff1a; 能够在 JSX 中实现条件渲染 作用&#xff1a; 根据是否满足条件生成 HTML 结构&#xff0c;比如 Loading 效果 实现&#xff1a; 可以使用三元运算符或者逻辑&&&#xff08;与&#xff09;运算符 实例&#xff1a; function App() {// 条件渲染/…

基于模型的电机brushless DC motor (BLDCM)控制方法

(无框)力矩电机&#xff0c;全称应该为永磁无刷直流(无框)力矩电机&#xff0c;其显著的特征是&#xff1a; 较大的径长比&#xff08;diameter-to-length ratio&#xff09;较多数目的磁极&#xff08;magnet poles&#xff09; 无框架电机是传统电机中用于产生扭矩和速度的…