React 入门介绍

React 的入门介绍 当应用的状态发生变化时,React会创建一个新的虚拟DOM树,并与之前的虚拟DOM树进行比较,找出发生变化的部分,然后只更新这些部分的真实DOM,从而避免了不必要的DOM操作,提高了性能。多页应用(Multi-page applications):React 也可以用于构建多页应用,其中每个页面都有自己的 React 组件,通过组件的嵌套和交互来构建复杂的页面。除了核心的React库,还有一些用于与React集成的附加库,例如React Router用于处理应用的路由,Redux用于管理应用的状态等。 阅读详情

react 是什么?

React是Facebook开源的一个用于构建用户界面的Javascript库,React专注于MVC架构中的View层,即视图层。
应用React时,应从UI出发抽象出不同的组件,对组件进行拼装。react 适合构建大规模应用程序,通过 React 你唯一要做的事情就是构建组件。
React有良好的封装性,组件使代码复用、测试和关注分离(separation of concerns)更加简单。

react 中的 Virtual DOM(虚拟DOM)

因为过多DOM操作会让应用程序变得很慢,并且很笨拙,在React中抽象出来了虚拟dom,在每次需要渲染时,会先比较当前DOM内容和待渲染内容的差异,
然后再决定如何最优地更新DOM。这个过程被称为reconciliation。

如何理解虚拟DOM

在浏览器端用Javascript实现了一套DOM API。基于React进行开发时所有的DOM构造都是通过虚拟DOM进行,每当数据变化时,React都会重新构建整个DOM树,
然后React将当前 整个DOM树和上一次的DOM树进行对比,得到DOM结构的区别,然后仅仅将需要变化的部分进行实际的浏览器DOM更新。
而且React能够批处理虚拟 DOM的刷新,在一个事件循环(Event Loop)内的两次数据变化会被合并,例如你连续的先将节点内容从A变成B,然后又从B变成A,
React会认为UI不发生任何变化,而如果通过手动控 制,这种逻辑通常是极其复杂的。尽管每一次都需要构造完整的虚拟DOM树,但是因为虚拟DOM是内存数据,性能是极高的,
而对实际DOM进行操作的仅仅是 Diff部分,因而能达到提高性能的目的。这样,在保证性能的同时,开发者将不再需要关注某个数据的变化如何更新到一个或多个具体的DOM元素,
而只需要 关心在任意一个数据状态下,整个界面是如何Render的。

React组件化

对于React而言,开发者从功能的角度出发,将UI分成不同的组件,每个组件都独立封装。
在React中,你按照界面模块自然划分的方式来组织和编写你的代码,对于评论界面而言,
整个UI是一个通过小组件构成的大组件,每个组件只关心自己部分的逻辑,彼此独立。

React中定义组件的方式

① ReactDOM.render
ReactDOM.render 是 React 的最基本方法,用于将模板转为 HTML 语言,并插入指定的 DOM 节点。


ReactDOM.render(
  <h1>Hello, world!</h1>,
  document.getElementById('elementId')
);

② ES5方式定义组件

"use strict";

var HelloMessage = React.createClass({
  displayName: "HelloMessage",

  render: function render() {
    return React.createElement(
      "div",
      null,
      "Hello ",
      this.props.name
    );
  }
});

ReactDOM.render(React.createElement(HelloMessage, { name: "John" }), mountNode);

③ 在Jsx中定义组件

var HelloMessage = React.createClass({
  render: function() {
    return <div>Hello {this.props.name}</div>;
  }
});

ReactDOM.render(<HelloMessage name="John" />, mountNode);

④ ES6中定义组件

import './Hello.css';
import './Hello.scss';

import React, {Component} from 'react';

// 内联样式
let style={
    backgroundColor:'blue'
}

export default class Hello extends Component {
    constructor(props) {
        super(props);
        this.state = { count: 'es6'};
    }
    render() {
        return (
            <div>
                <h1 style={style}>Hello world{this.state.count}</h1>
                <br/>
                <image/>
            </div>
        )
    }
}

jsx语法 介绍

HTML 语言直接写在 JavaScript 语言之中,不加任何引号,这就是 JSX 的语法,它允许 HTML 与 JavaScript 的混写。
实质上这只是一个语法糖,每一个 XML标签都会被JSX转换工具转换成纯Javascript代码,当然你想直接使用纯Javascript代码写也是可以的,
只是利用JSX,组件的结 构和组件之间的关系看上去更加清晰。

JSX 的基本语法规则:
遇到 HTML 标签(以 < 开头),就用 HTML 规则解析;遇到代码块(以 { 开头),就用 JavaScript 规则解析。
JSX 允许直接在模板插入 JavaScript 变量。如果这个变量是一个数组,则会展开这个数组的所有成员。
如:


 var arr = [
   <h1>Hello world!</h1>,
   <h2>React is awesome</h2>,
 ];

 ReactDOM.render(
   <div>{arr}</div>,
   document.getElementById('example')
 );

相关学习地址

RenderDoc实战:5分钟搞定安卓Vulkan应用抓帧(含常见连接失败排查) 本文详细介绍了如何使用RenderDoc工具对安卓Vulkan应用进行抓帧分析,包括环境配置、完整抓帧流程及常见连接问题的解决方案。通过实战案例和高级技巧,帮助开发者快速定位渲染问题和性能瓶颈,提升移动图形开发效率。 阅读详情

相关推荐

如何在 Ubuntu 24.04 或 22.04 上安装和使用 GDebi

本文介绍了在Ubuntu 24.04上安装和使用GDebi的方法。GDebi是DPKG的轻量级替代品,能够自动解析并安装.deb包的依赖项。文章详细说明了系统更新、安装GDebi的步骤,并演示了通过GUI和CLI两种方式安装.deb包的操作流程。此外,还提供了验证安装和卸载包的方法。GDebi虽然非必需,但为用户提供了处理依赖项的另一种选择,适合需要安装本地Debian包的用户。

山岚的运维笔记 2016

React三大核心属性和生命周期(持续更新)

本文用来记录我的React学习过程,有不对的地方,请大家指正😊。

ZTBztb123456的博客 791

告别环境配置噩梦:用Docker Desktop + WSL2在Windows上5分钟搞定vLLM运行环境

本文详细介绍了如何在Windows系统上使用Docker Desktop和WSL2快速搭建vLLM开发环境,5分钟内完成配置。通过容器化技术解决传统环境配置中的依赖冲突、环境污染等问题,提供一键复用的高效方案,特别适合AI开发者快速部署和测试vLLM框架。

weixin_28728495的博客 503

React中的render()

一、React中的render() 1、render():是 class 组件中唯一必须实现的方法 2、当 render 被调用时,它会检查 this.props 和 this.state 的变化并返回以下类型之一: (1)React 元素。通常通过 JSX 创建。例如,<div /> 会被 React 渲染为 DOM 节点,<MyComponent /> 会被 React 渲染为自定义组件,无论是 <div /> 还是 <MyComponent /&g

Han_Zhou_Z的博客 1万+

基于CY7C68013A芯片的USB2.0设计

基于FPGA的USB2.0读写控制项目简介CY7C68013A芯片介绍CY7C68013A芯片读写时序控制CY7C68013A芯片读写代码USB2.0的测试结果结束语 项目简介 我们前面已经写过了USB3.0的FPGA实现,所用到的芯片是FX600Q芯片,这次我们讲解USB2.0的FPGA代码的编写。我们用到的芯片是Cypress厂家的Cy7C68013A,该款芯片在市场上的应用率极广,我们这里不...

zhangningning1996的博客 1万+

主板USB接口全部失效解决方案(通用串行总线USB控制器有黄色叹号)保姆级教程亲测有效

通用串行总线控制器总是有叹号解决办法 办公室的崩腾时代老电脑,疫情期间没人用,来了开机之后发现鼠标键盘都用不了,本以为是主机放时间长出了问题,后来想起来就百度了“鼠标键盘都失效”的标题,结果发现了“串行总线控制器总是感叹号”的关联问题。正好办公室电脑都装有teamviwer常用来远程办公(在家偷懒)。所以通过远程发现电脑室可以运行的。并在控制面板发现:通用串行总线控制器总是感叹号,插入外设时USB无反应。如图:​ 并且右键选中其中一个,点击最后一个选项:“属性” 可以发现“设备状态”中会提示“由...

xiao_bai_0_0的博客 2万+

react触发render的三种方法

一、通过setState 二、this.forceUpdate() 三、通过状态管理,如mobx,redux等 项目中我改变了一个对象的值,并没有setState,导致没有重新render,加上 this.setState({}); 或者 this.forceUpdate(); 问题就解决了。 ...

sinat_41747081的博客 6235

告别配置烦恼!保姆级教程:在Windows 10/11上为QT5.14.2配置MSVC2017编译器(附VS2022组件避坑指南)

本文提供了一份详细的保姆级教程,指导如何在Windows 10/11上为QT5.14.2配置MSVC2017编译器,包括VS2022组件避坑指南。从环境准备到关键配置,再到调试工具验证和Qt Creator中的编译器设置,一步步解决常见问题,帮助开发者快速搭建稳定可靠的开发环境。

weixin_30615767的博客 503

react三大核心属性

react三大核心属性之state 1、state是组件对象最重要的属性,值是对象(可以包含多个key-value的组合) 2、组件被称为“状态机”,通过更新组件的state来对应更多的页面显示(重新渲染组件) 3、react核心理念状态不可变(专业!!) class MyComponent extends React.Component{ constructor(props){ super(props) this.state={isHot:false}

Nikki_u的博客 600

【部署】Ubuntu 24.04.4虚拟机下部署OpenClaw

OpenClaw是一款基于AI的智能助手工具,本文详细介绍了在Ubuntu 24.04.4系统上的三种安装方法。推荐使用一键安装脚本(curl -fsSL https://openclaw.ai/install.sh | bash),自动完成Node.js检测、CLI安装和引导配置。对于开发者,提供了从源码构建的详细步骤,包括环境准备、依赖安装和构建流程。文章还包含常见问题解决方案(如sharp构建错误处理)以及后续维护建议(更新、配置检查和日志查看)。安装完成后,用户可通过终端TUI或Web UI进行初始

海兰 1万+

bevformer详解(3): 逐行代码讲解

在这篇文章中,我们将从BEVFormer算法代码入手,深入探究BEV转换的流程。BEVFormer是一种基于Transformer的BEV转换模型,其核心思想是利用自注意力机制和交叉注意力机制,从,并通过Object Query与BEV特征的交互,完成3D目标检测和地图分割等任务。https://developer.baidu.com/article/details/3224715bevformer的网络结构由三部分组成, 模型结构所示,其中的是部分,对于的是的结构,对于部分,沿用的中的decoder部分,

@bangbang的博客 3702

React 触发render的方法

1、通过setState this.setState({}); 2、this.forceUpdate() this.forceUpdate(); 3、通过状态管理,如mobx,redux等

忘川 1736

【华为OD机试真题 Python语言】371、增强的strstr | 机试真题+思路参考+代码解析(E卷复用)

>C语言有一个库函数: char *strstr(const char *haystack,const char *needle) ,实现在字符串haystack中查找第一 次出现字符串needle的位置,如果未找到则返回null >  现要求实现一个strstr的增强函数,可以使用带可选段的字符串来模糊查询,与strstr一样返回首次查找到的字符串位置 >  可选段使用"[]"标识,表示该位置是可选段中任意一个字符即可满足匹配条件,比如"a[bc]"表示可以匹配"ab"或"ac" >&

KJ.JK 2607

ReactJs入门介绍

现在最热门的前端框架有AngularJS、React、Bootstrap等。自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领略 ReactJS的风采吧~~ 章有点长,耐心读完,你会有很大收获哦~ 一、ReactJS简介 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaSc

一个有趣、有料、有内涵的地方! 625

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

React-入门介绍

React-入门介绍

唯见青山不见君 1476

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

入门指南:从零开始学习ReactJS

ReactJS是一个强大的JavaScript库,用于构建用户界面。它由Facebook开发,并于2013年首次发布。自那时以来,React已成为前端开发中最受欢迎的库之一,许多公司和开发者都在使用它来构建高性能、交互式的Web应用程序。本文将向您介绍ReactJS的基础知识,并通过实践示例来帮助您入门。我们将从React的核心概念开始,逐步深入,直到您能够构建简单的React应用为止。

努力是为了站在万人之中,成为别人的光 2万+

ReactJS 快速入门 1 介绍

React  快速入门 一. 介绍 React是Facebook开源的一个用于构建用户界面的Javascript库,已经 应用于Facebook及旗下Instagram。 和庞大的AngularJS不同,React专注于MVC架构中的V,即视图。 这使得React很容易和开发者已有的开发栈进行融合。 React顺应了Web开发组件化的趋势。应用React时,你总

绿足 博客 450

Android之React native的介绍和入门指南

Android之React native的介绍和入门指南

weixin_44519342的博客 681

react入门介绍

1. React入门 ## 1.1. React基本认识 ## 1.2. React基本使用 ## 1.3. JSX的理解和使用 ## 1.4. 模块与模块化, 组件与组件化的理解 2. React组件化编程 ## 2.1. 组件的定义与使用 ## 2.2. 组件的3大属性: state, props, refs ## 2.3. 组件中的事件处理 ## 2.4. 组件的组合使用 ## 2.5. ...

fire_zero的博客 621

React入门级介绍

全局安装脚手架 $ npm i -g create-react-app 基于脚手架快速构建工程化的项目 $ create-react-app xxx项目名称 简单了解react和vue的相同及不同点 vue是MVVM框架(model view viewModel): model:data(defineProperty GETTER/SETTER),computed,vuex… ...

Zwx886的博客 470

React入门介绍(带你快速了解React)

Java面试核心知识点一共有30个专题,足够读者朋友们应付面试啦,也节省朋友们去到处搜刮资料自己整理的时间!Java面试核心知识点已经有读者朋友靠着这一份Java面试知识点指导拿到不错的offer了《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!靠着这一份Java面试知识点指导拿到不错的offer了**[外链图片转存中…(img-WAC4rG2Y-1713274137942)]

2401_83330193的博客 796

React入门 (一) 基本语法和功能介绍

开个贴,学习React Native现在有各种各样的web-native解决方案,是时候找到一个合适的,facebook发布的React Native ,现在好像被挺多团队推崇的,包括天猫,百度等(小道传闻~),so,学习吧,既然眼观没有其他人独到,不如站在巨人肩膀上~React 入门首先我们要熟悉使用React,我理解为像是jQuery那样的JavaScript框架,说道JavaScript,许多

跟风的eassy的博客 2986

React学习(一):简单介绍入门

序言:总结一些React知识。 目录一、React介绍二、React特点三、引入React 库四、第一个react项目 一、React介绍 React 起源于 Facebook 的内部项目,于 2013 年 5 月开源。 React 是一个用于构建用户界面的 JavaScript库。 React 主要用于构建UI,具备较高的性能,很多人认为React 是 MVC 中的 V(视图)。 二、React特点 1、声明式 React 是面向数据编程,不需要直接去控制dom,你只要把数据操作好,react会帮你操作d

Allen_6的博客 6163

react使用入门+介绍

React 背景介绍 React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了 什么是react React是Facebook出的一款针对view视图层的library(库),主要使用单项数据流的方式进行数据展示 为什么要用...

weixin_42786389的博客 229
上一篇: 考研英语 - word-list-7
下一篇: 考研英语 - word-list-8
Wang's Blog
博客等级 码龄12年 7438粉丝 2421原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值