初识React,基础(1), 安装react,jsx文件,类组件和函数组件,css样式

news2024/9/25 21:28:56

第一部分:初识react

  1. react: 用于构建用户界面的 JavaScript 库
  2. 全局安装,win+ r, 命令:
npm install create-react-app -g

在这里插入图片描述
3. 创建一个react应用, 这里我在vscode 里面创建, 创建之后,运行

create-react-app my-app

cd my-app
npm start

第二部分:

  1. redact 组件定义以及使用
    react 中组件 分为两种: 类组件 和 函数组件, 一般使用是以jsx结尾的文件,有提示

  2. 先使用类组件

// learn-class.jsx 文件 
// react 一般结尾是以jsx
// 类组件使用
import React from 'react';
/**
 * 类组件必须继承React.compinent 这个类才叫 类组件
 * 并且要把这个类(或者组件) 导出
 */
export default class LearnClass extends React.Component{
  /**
   * 必须要有一个方法 render
   * render 里面必须要有返回值 
   * 返回值就是 html 
   */
  render(){ 
    return (
      <div>
        <div>类组件</div>
      </div>
    )
  }
}

在index.js 中使用


import ReactDOM from 'react-dom/client';
// 导入进来
import LearnClass from './day-1/learn-class';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
	// 注意是 按照标签使用
  <LearnClass></LearnClass>
);

最后结果没有问题

  1. 函数组件使用
// 函数组件, learn-fnc.jsx
export default function LearnFnc() { 
  return (
    <div>函数组件</div>
  )
}

在index.js 中使用

import ReactDOM from 'react-dom/client';
// import LearnClass from './day-1/learn-class';
import LearnFnc from './day-1/learn-fnc';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <LearnFnc></LearnFnc>
);

然后运行ok

  1. 类组件和函数组件的区别
    简单理解:
    1.类组件有生命周期,函数组件没有
    2.类组件需要继承class,函数组件不需要

第三部分
1.初识jsx, 就是js 里面写html和变量
每一个JSX 元素只是调用React.createElement(‘组件或者标签名’,‘组件接收的参数’, 子级)的语法糖

import React from 'react';

class A1 extends React.Component {
  /**
   * jsx 核心是createElement
   *  第一个参数是组件或者标签名
   *  第二个组件接受的参数
   *  第三个参数 子级
   */
  render() { 
    return React.createElement('h1',null, "A1")
  }
}

export default class LearnJsx extends React.Component { 
  name = "张三"
  dv = <div>dv</div>
  age = 20
  render() { 
    return (
      <div>
        {this.name}
        {this.dv}
        {this.age > 18 ? '成年' : '未成年'}
        <A1></A1>
      </div>
    )
  }
}

第四部分

  1. css 样式使用推荐 sass
npm install sass
  1. 在learn-scss.scss中
.LearnJsx{
  .box{
    width: 100px;
    height: 100px;
    background-color: pink;
  }
}
  1. 在learn-jsx.jsx中引用
import React from 'react';
/*引用*/
import './learn-scss.scss'
class A1 extends React.Component {
  /**
   * jsx 核心是createElement
   *  第一个参数是组件或者标签名
   *  第二个组件接受的参数
   *  第三个参数 子级
   */
  render() { 
    return React.createElement('h1',null, "A1")
  }
}

export default class LearnJsx extends React.Component { 
  name = "张三"
  dv = <div>dv</div>
  age = 20
  render() { 
    return (
      <div className='LearnJsx'>
        {this.name}
        {this.dv}
        {this.age > 18 ? '成年' : '未成年'}
        <A1></A1>
        /*使用*/
        <div className='box' >
          红色
        </div>
      </div>
    )
  }
}


  1. 用css 引入
// learn.css 中
.red{
  color: red;
}

// ------- 分割线 在 在learn-jsx.jsx中引用, 但是如果index.js引用了组件,没有使用LearnJsx组件,会污染其他组件,所以不推荐,但是要知道这个写法 
import React from 'react';
// import './learn-scss.scss'
import  "./learn.css";
export default class LearnJsx extends React.Component { 
  name = "张三"
  dv = <div>dv</div>
  age = 20
  render() { 
    return (
      <div className='LearnJsx'>
        {this.name}
        {this.dv}
        {this.age > 18 ? '成年' : '未成年'}
        <div className='red'>
          红色
        </div>
        // 或者
        <div style={{'color': 'red'}}>
          红色
        </div>
      </div>
    )
  }
}

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

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

相关文章

视频增强修复Topaz Video AI

Topaz Video AI是一款强大的视频增强软件&#xff0c;利用人工智能技术对数千个视频进行训练&#xff0c;结合多个输入视频的帧信息来提高素材的分辨率。该软件可将视频的分辨率提高到最高8K&#xff0c;并保持真实的细节和运动一致性。同时&#xff0c;它还能自动修复视频中的…

NFS网络共享存储服务技术攻略

目录 一.NFS 1.定义 2.特点 3.原理 二.服务端NFS配置文件 1.主配置文件 2.文件格式 3.相关命令 三.实验&#xff1a;NFS共享存储服务配置 1.服务端安装nfs-utils和rpcbind软件包 2.服务端新建共享目录给权限 3.服务端修改配置文件/etc/exports 4.服务端关闭防火墙…

【C++干货铺】C++11常用新特性 | 列表初始化 | STL中的变化

个人主页点击直达&#xff1a;小白不是程序媛 C系列专栏&#xff1a;C干货铺 代码仓库&#xff1a;Gitee 目录 C11简介 列表初始化 std::initializer_list std::initializer_list使用场景 decltype关键字 STL中的一些变化 新容器 array forward_list 容器中的一些新…

【Python_PySide6学习笔记(三十一)】基于PySide6实现自定义串口设备连接界面类:可实现串口连接断开、定时发送等功能

基于PySide6实现自定义串口设备连接界面类:可实现串口连接关闭、定时发送等功能 基于PySide6实现自定义串口设备连接界面类:可实现串口连接关闭、定时发送等功能前言一、界面布局二、串口相关功能实现三、完整代码四、调用方法五、实现效果基于PySide6实现自定义串口设备连接…

ChatGPT提示词保姆级教程

现在越来越多提示词教程&#xff0c;本文列个清单&#xff0c;方便以后整理&#xff0c;不定期更新&#xff0c;欢迎关注留言&#xff01; 后续更新欢迎关注 提示词&#xff08;prompt&#xff09;出来后&#xff0c;被称为一个新的岗位诞生&#xff0c;面向提示词工程师。 …

将vue项目打包成桌面客户端实现点击桌面图标直接进入项目

1.下载NW.js 下载地址&#xff1a;NW.js官网 下载完后zip解压 2.文件夹下新建index.html index内容如下&#xff1a; <!DOCTYPE html> <html> <head> </head> <body> <script language"javascript" type"text/javascript&q…

《游戏-01_2D-开发》

首先利用安装好的Unity Hub创建一个unity 2D&#xff08;URP渲染管线&#xff09;项目 选择个人喜欢的操作格局&#xff08;这里采用2 by 3&#xff09; 在Project项目管理中将双栏改为单栏模式&#xff08;个人喜好&#xff09; 找到首选项&#xff08;Preferences&#xff09…

K8s知识点总结_part1

Kubernetes 是什么 为用户提供一个具有普遍意义的容器编排工具。 它着重解决的问题是&#xff1a;大规模集群中的各种运行任务之间的关系处理&#xff0c;这些关系的处理&#xff0c;是作业编排和管理系统最困难的地方。 其能力有&#xff1a; • 基于容器的应用部署、维护和…

C#编程-使用反射检索元数据

使用反射检索元数据 术语反射通常用来指镜像。如果您站在镜子面前,镜子会反射出您的所有物理属性,如:您的身高、肤色和身体结构。在C#中也一样,反射被用于反射程序有关的所有信息。C#程序可以利用反射获得类在运行时的信息。 反射在运行时获取类型信息的过程中被使用。提…

Python自动化报告的输出用例详解

1、设计简单的用例 2、设计用例 以TestBaiduLinks.py命名 # coding:utf-8from selenium import webdriverimport unittestclass BaiduLinks(unittest.TestCase):def setUp(self):base_url https://www.baidu.comself.driver webdriver.Chrome()self.driver.implicitly_wait(…

监控系统——Zabbix

目录 Zabbix概述 Zabbix 监控原理 Zabbix 与 Prometheus的区别 Zabbix 6.0 新特性 Zabbix 6.0 功能组件 Zabbix Server 数据库 Web 界面 Zabbix Agent Zabbix Proxy Java Gateway Zabbix 6.0 部署 部署 zabbix 服务端 添加 zabbix 客户端主机 自定义监控内容…

如何使用idm下载百度网盘的资源

IDM是海内外都非常受欢迎的一款下载管理软件。它支持视频媒体嗅探和多线程下载&#xff0c;能够完美替代谷歌Chrome浏览器、Edge浏览器等浏览器的原生下载功能。在浏览器中单击下载链接时&#xff0c;idm将接管浏览器的原生下载工具并加快下载速度&#xff0c;支持HTTP&#xf…

Architecture Lab:part A 【实现sum_list/rsum_list/copy_block/熟悉Y86-64指令】

Architecture Lab 对应CS:APP的Chap 4——处理器体系结构。Part A要实现三个函数&#xff0c;分别为sum_list/rsum_list/copy_block。建议先得到x86-64指令&#xff0c;然后再转换为Y86-64指令。 准备工作 在misc目录下&#xff0c;键入以下命令用来生成汇编代码。命令执行完…

tui.calender日历创建、删除、编辑事件、自定义样式

全是坑&#x1f573;&#xff01;全是坑&#x1f573;&#xff01;全是坑&#x1f573;&#xff01;能不用就不用&#xff01; 官方文档&#xff1a;https://github.com/nhn/tui.calendar/blob/main/docs/en/apis/calendar.md 实例的一些方法&#xff0c;比如创建、删除、修改、…

【React】脚手架创建项目

文章目录 创建React项目目录结构分析了解PWA脚手架中的webpack 创建React项目 ◼ 创建React项目的命令如下&#xff1a; ​  注意&#xff1a;项目名称不能包含大写字母 ​  另外还有更多创建项目的方式&#xff0c;可以参考GitHub的readme 命令&#xff1a; create-rea…

Redis相关命令详解及其原理

Redis概念 Redis&#xff0c;英文全称是remote dictionary service&#xff0c;也就是远程字典服务。这是kv存储数据库。Redis&#xff0c;包括所有的数据库&#xff0c;都是请求-回应模式&#xff0c;通俗来说就是数据库不会主动地要给前台推送数据&#xff0c;只有前台发送了…

1026 程序运行时间 (15)

要获得一个 C 语言程序的运行时间&#xff0c;常用的方法是调用头文件 time.h&#xff0c;其中提供了 clock() 函数&#xff0c;可以捕捉从程序开始运行到 clock() 被调用时所耗费的时间。这个时间单位是 clock tick&#xff0c;即“时钟打点”。同时还有一个常数 CLK_TCK&…

使用zabbix-proxy进行分布式监控

目录 一、准备4台服务器 二、配置主从复制 1.准备环境 2.主机名解析 3.安装数据库 4.配置主库db1 5.配置从库db2 6.主从状态显示 三、db1&#xff0c;db2配置zabbix-agent 三、zabbix-server的配置 四、zabbix-proxy的配置 1.为您的平台安装和配置Zabbix-proxy a. …

勒索病毒:原理与防御

一、勒索病毒概述 勒索病毒&#xff0c;又称为Ransomware&#xff0c;是一种恶意软件&#xff0c;通过感染电脑系统、服务器或者手机等设备&#xff0c;使用户文件被加密&#xff0c;从而向用户索取赎金以解锁文件。近年来&#xff0c;勒索病毒已经成为网络安全领域的一大公害…

linux java 8安装

tar -zxf jdk-8u***.tar.gz -C /usr/loacl/ vim /etc/profile i 输入 export JAVA_HOME/usr/local/安装文件名 export PATH${JAVA_HOME}/bin:$PATH ESC :wq 保存退出 source /etc/profile 验证 java -version