与react的初定情素

news2025/7/5 20:35:50

在这里插入图片描述
前要: 其实吧!之前的博客基本没有写过相关react的笔记,因为我根本没有写过react的相关项目,作为一个小水前端,没有写过react的项目会让别人笑大大牙的,所以趁着划水时间好好学习,天天向上!

React 是一个用于构建用户界面的 JAVASCRIPT 库。主要用于构建 UI,很多人认为 React 是 MVC 中的 V(视图)。起源于 Facebook 的内部项目,用来架设 Instagram 的网站。拥有较高的性能,代码逻辑非常简单,越来越多的人已开始关注和使用它。经过vue岁月的磨洗,直接上脚手架把!

目录概览

    • 尝试修改 src/App.js 文件代码
    • JSX
        • JSX表达式
        • JSX样式
        • JSX数组
    • 组件
    • state状态
    • Props

尝试修改 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">
		     <header className="App-header">
		       <img src={logo} className="App-logo" alt="logo" />
		       <p>Edit <code>src/App.js</code> and save to reload.</p>
		       <a className="App-link" href="https://reactjs.org" target="_blank" rel="noopener noreferrer" >
		         Learn React
		       </a>
		     </header>
		   </div>
		)
	}
}
export default App;

JSX

​React 使用 JSX 来替代常规的 JavaScript。JSX 是一个看起来很像 XML 的 JavaScript 语法扩展。

JSX 执行更快,因为它在编译为 JavaScript 代码后进行了优化。
它是类型安全的,在编译过程中就能发现错误。
使用 JSX 编写模板更加简单快速。

所以推荐使用JSX来编写逻辑会更好​!!!

我们知道元素是构成 React 应用的最小单位,JSX 就是用来声明 React 当中的元素。与浏览器的 DOM 元素不同,React 当中的元素事实上是普通的对象,React DOM 可以确保 浏览器 DOM 的数据内容与 React 元素保持一致。要将 React 元素渲染到根 DOM 节点中,我们通过把它们都传递给 ReactDOM.render() 的方法来将其渲染到页面上:

JSX表达式

import React ,{Component} from 'react'
import './Hello.css'

export default class Hello extends Component{
    render (){
        return <h1>{2+3}</h1>
    }
}

JSX 不能使用 if else ,但可使用三元运算表达式替代

import React ,{Component} from 'react'
import './Hello.css'

export default class Hello extends Component{
    render (){
		let i = 1;
        return <h1>{i == 1 ? 'True!' : 'False'}</h1>
    }
}

JSX样式

React 推荐使用内联样式。使用 camelCase 语法来设置内联样式. React 会在指定元素数字后自动添加 px 。为 h1 元素添加 myStyle 内联样式:

import React ,{Component} from 'react'
import './Hello.css'

export default class Hello extends Component{
    render (){
		var myStyle = {
		    fontSize: 100,
		    color: '#FF0000'
		};
        return <h1 style = {myStyle}>hell word!</h1>
    }
}

JSX数组

JSX 允许在模板中插入数组,数组会自动展开所有成员:

import React ,{Component} from 'react'
import './Hello.css'

export default class Hello extends Component{
    render (){
		var arr = [
			<h1>hell word</h1>,
			<h2>努力学习react!</h2>,
		];
        return <h1>{arr}</h1>
    }
}

组件

在这里插入图片描述

state状态

React 把组件看成一个状态机(State Machines)。通过与用户的交互,实现不同状态,然后渲染 UI,让用户界面和数据保持一致。
React 里,只需更新组件的state,然后根据新 state 重新渲染用户界面(不要操作 DOM)。
以下实例创建一个名称扩展为 React.Component 的 ES6 类,在 render() 方法中使用 this.state 来修改当前的时间。添加一个类构造函数来初始化状态 this.state,类组件应始终使用 props 调用基础构造函数。

import React ,{Component} from 'react'
import './Hello.css'

export default class Hello extends Component{
	constructor(props) {
	    super(props);
	    this.state = {date: new Date()};
	}
    render (){
        return (
		   <h1>hell word</h1>,
		   <h2>{this.state.date.toLocaleTimeString()}</h2>
		)
    }
}

我们将Clock设置自己的计时器并每秒更新一次。

将生命周期方法添加到类中
在具有许多组件的应用程序中,在销毁时释放组件所占用的资源非常重要。

每当 Clock 组件第一次加载到 DOM 中的时候,我们都想生成定时器,这在 React 中被称为挂载。

同样,每当 Clock 生成的这个 DOM 被移除的时候,我们也会想要清除定时器,这在 React 中被称为卸载。

我们可以在组件类上声明特殊的方法,当组件挂载或卸载时,来运行一些代码:

import React ,{Component} from 'react'
import './Hello.css'

export default class Hello extends Component{
	//构造函数,初始化state状态值
	constructor(props) {
	    super(props);
	    this.state = {date: new Date()};
	}
	//首次渲染前清除所有的定时器
	componentWillUnmount() {
	    clearInterval(this.timerID);
	}
	//render渲染之后定时0.1秒执行tick方法的操作
	componentDidMount() {
		this.timerID = setInterval( 
		    () => this.tick,100
		);
	}
	//更新日期的方法
	tick() {
	    this.setState({
	      date: new Date()
	    });
	} 
	//渲染组件
    render (){
        return (
		   <h1>hell word</h1>,
		   <h2>{this.state.date.toLocaleTimeString()}</h2>
		)
    }
}

Props

state 和 props 主要的区别在于 props 是不可变的,而 state 可以根据与用户交互来改变。这就是为什么有些容器组件需要定义 state 来更新和修改数据。 而子组件只能通过 props 来传递数据。​

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

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

相关文章

Java程序员面试1000问,让你开挂的面试宝典,花点耐心看完offer拿到手软

前言: 本文收集整理了各大厂常见面试题N道&#xff0c;你想要的这里都有内容涵盖&#xff1a;Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈&#xff0c;希望大家都能找到适…

[nlp] OPT与GPT-2的差异

Meta AI 开源1750亿参数大模型- OPT,FlagAI一键调用! - 知乎简介Meta AI 开源 OPT系列模型,其中最大模型1750 亿参数(需申请访问权限)媲美 GPT-3。OPT系列模型包括了多组不同参数规模的模型权重,如图: OPT开源了一系列大模型,但是实际调用这些模型有很高的技术门槛。为…

如何变成领域里大牛级的人物?

今天看到一段话&#xff0c;挺有道理的&#xff0c;于是摘录下来&#xff1a; 对一个领域不太了解&#xff0c;而该领域又重要&#xff0c;你可以这样做: 1.读领域中经典教材和入门书 2.实践&#xff0c;观察、反思&#xff0c;找到核心的几个关键问题 3.对关键问题深入探索&am…

Rust in Action笔记 第四章生命周期、所有权、借用

第四章用了一个行星通信的例子来阐述整个主题&#xff0c;主要角色有地面站&#xff08;Ground station&#xff09;、人造卫星&#xff08;CubeSat&#xff09;&#xff0c;两者有不同的状态并且能互相发消息通信&#xff1b; Rust有类型安全&#xff08;type safety&#xf…

位姿估计 | 空间目标位姿估计方法分类总结

目录 前言位姿估计方法分类一、传统位姿估计方法1. 基于特征的位姿估计2. 基于模型的位姿估计 二、深度学习位姿估计方法 总结 前言 本文接着分享空间目标位姿跟踪和滤波算法中用到的一些常用内容&#xff0c;希望为后来者减少一些基础性内容的工作时间。以往分享总结见文章&a…

KW 新闻 | KaiwuDB 受邀亮相 IOTE 2023 第十九届国际物联网展

5月17日&#xff0c;IOTE 2023 第十九届国际物联网展在上海拉开序幕&#xff0c;全球超过 350 家参展企业到场展示先进的物联网技术和产品&#xff0c;行业专家、领军企业代表等人物齐聚一堂&#xff0c;共话 IoT 未来趋势。KaiwuDB 受邀亮相参展并就《工业物联网产业数字化转型…

剑指 Offer 30: 包含min函数的栈

这里用到了java中的Stack,和别的方法一样&#xff08;LinkedList&#xff09;&#xff0c;也是先使用Stack带上类型&#xff08;这里是<Integer>&#xff09;声明&#xff0c;然后再new出来。 这里需要的返回值是int&#xff01;&#xff01;&#xff01; 这里千万要注意…

SQLServer2017安装教程

一、安装包下载地址&#xff1a; https://download.csdn.net/download/u011152234/87898714 二、软件安装 1、双击“SQLEXPR_x64_CHS.exe”将文件提取在指定文件中。 2、 右击“SETUP.EXE”以“管理员身份运行” 3、选择全新安装模式继续安装 4、在协议中&#xff0c;点击同…

入驻京东MCN机构详细流程

京东MCN机构可以为京东平台提供更专业的运营和管理服务&#xff0c;通过对UP主的培训和管理&#xff0c;提高UP主的创作水平和内容品质&#xff0c;从而提高平台的服务质量和用户体验&#xff0c;京东MCN机构可以通过与京东平台的合作&#xff0c;优化平台生态&#xff0c;提高…

Java RabbitMQ API 对接说明

1.背景 最近研发的物联网底层框架使用了RabbitMQ作为消息队列&#xff0c;如果监控消息队列对其通道是否出现阻塞能够及时获知与让管理员收到预警并及时处理&#xff0c;这里我们会采用RabbitMQ的rabbitmq_management插件。利用其提供的API进行获取信息&#xff0c;从而实现队…

【Python实战】Python采集王者最低战力信息

前言 王者新赛季马上就要开始了&#xff0c;大家都开始冲榜了&#xff0c;准备拿一个小省标&#xff0c;那么&#xff0c;本文&#xff0c;就来练习获取各地最低战力的爬虫采集实战。 环境使用 python 3.9pycharm 模块使用 requests 模块介绍 requests requests是一个很实用…

都说软件测试简单,我怎么没有感觉呢?

前言 软件测试到底难不难&#xff1f;试试就知道了。 经常听想入行的朋友说&#xff1a; 我想转软件测试&#xff0c;听说软件测试很简单。 这时我的心里就呵呵了&#xff0c;谁说软件测试简单了&#xff0c;你知道吗&#xff1f;测试工程师要会的&#xff0c;要了解的东西比…

电力vr智能巡检模拟实操教学灵活性高成本低

传统电力智能运检服务培训采用交接班期间开展智能带电检测仪器的操作培训&#xff0c;教学时间、场地及材料有限&#xff0c;有了VR技术&#xff0c;将推动电力智能运检服务培训走向高科技、高效率和智能化水平。 深圳华锐视点凭借着对VR实训系统的深入研发和升级&#xff0c;多…

asp.net 框架开发的LIMS实验室信息管理系统源码

LIMS实验室信息管理系统源码 通过互联网实验室的管理模式&#xff0c;结合实验室硬件设备&#xff0c;将实验室的项目、设备、耗材、人员等结合到软件上管理&#xff0c;利用计算机网络技术、数据存储技术 、快速数据处理等&#xff0c;对实验室进行全方位的管理&#xff0c;帮…

web接口测试之GET与POST请求

目录 前言&#xff1a; GET请求 POST请求 前言&#xff1a; Web接口测试中最常见的请求方法是GET和POST&#xff0c;它们构成了大部分的Web API请求。在接口测试开发过程中&#xff0c;了解它们的原理、特点和应用场景是非常重要的。在本文中…

抖音电商发展路径:从外链种草到达人/品牌直播

复盘抖音电商发展&#xff0c;可以总结出以下几点发展特征&#xff1a; 策略重心的变化 以种草为核心&#xff0c;给电商引流站外成交&#xff08;2019 年及之前&#xff09;→ 力推达人直播但效 果一般&#xff08;2020 上半年&#xff09;→ 推品牌自播并彻底闭环&#xff0…

postgres 简单导入导出sql脚本

postgres 简单导入导出sql脚本 导出 backup选择类型 导入功能 导出 backup 选择类型 右键点击backup&#xff1a; 成功导出sql 数据文件 导入功能 cd 进入 Postgres 安装目录进入bin目录下执行一下命令 psql -d ${database_name} -h localhost -p 5432 -U postgres -f C:\…

成功案例丨借助Facebook运营海外市场的企业策略

在当今数字化时代&#xff0c;企业在拓展海外市场和赢得全球消费者的竞争中&#xff0c;社交媒体平台扮演了重要角色。其中&#xff0c;Facebook作为全球最大的社交媒体平台之一&#xff0c;为众多企业提供了成功进军海外市场的机会。 Poppy & Finch&#xff08;虞姬家&…

创建合同pdf操作整理

使用TCPDF对合同的模板创建、盖章、水印、骑缝章、设置保护等操作。 目录 合同模板处理 创建html模板 模板赋值 创建目录 创建blade合同模板 变量改活 获取html内容 创建pdf文件 盖章处理 骑缝章处理 获取总页数 分割印章 设置骑缝章 水印设置 简单水印 每页水…

Jenkins部署报错问题:已解决

一.Jenkins不能下载插件 报错sun.security.provider.certpath.SunCertPathBuilderException sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.provider.certpath.SunCertPathBuild…