首页 > 其他分享 >React Native之React基础

React Native之React基础

时间:2023-05-09 16:34:06浏览次数:50  
标签:DOM 基础 React 虚拟 UI 组件 JSX Native

React Native 的基础是React, 是在 web 端非常流行的开源 UI 框架。要想掌握 React Native,先了解 React 框架还是很有帮助的。主要理解三个概念:组件、状态和 JSX。 使用组件的方式描述 UI   使用组件的方式描述 UI在 React 中,所有的 UI 都是通过组件去描述和组织的。可以认为,React 中所有的元素都是组件,具体而言分为两种。   内置组件。内置组件其实就是映射到 HTML 节点的组件,例如 div、input、table 等等,作为一种约定,它们都是小写字母。   自定义组件。自定义组件其实就是自己创建的组件,使用时必须以大写字母开头,例如 TopicList、TopicDetail。   和 DOM 的节点定义类似,React 组件是以树状结构组织到一起的,一个 React 的应用通常只有一个根组件。 使用 state 和 props 管理状态   React 的核心机制是能够在数据发生变化的时候自动重新渲染 UI,那么势必要有一个让我们保存状态的地方,这个保存状态的机制就是 state。而 props 就是类似于 Html 标记上属性的概念,是为了在父子组件之间传递状态。 理解 JSX 语法的本质   从本质上来说,JSX 并不是一个新的模板语言,而可以认为是一个语法糖。也就是说,不用 JSX 的写法,其实也是能够写 React 的。   JSX 其实是一种语法糖。理解这一点非常重要,因为它意味着两点:   JSX 的表达能力等价于 JavaScript 的表达能力,那么所有我们可能需要的机制,比如循环、条件语句等等,JSX 其实都能灵活表达。 JSX 几乎不需要学习,只要你会用 JavaScript,就也会用 JSX。   所以这也是 React 的“模板语言”区别于 Angluar 和 Vue 的地方,JSX 不是一个新的概念,而只是原生 JavaScript 的另一种写法。但是换成这种写法,就会大大降低你上手 React 的难度。   2. React中的核心概念   1 虚拟DOM(Virtual DOM) 2 Diff算法(虚拟DOM的加速器,提升React性能的法宝) 1. 虚拟DOM(Vitural DOM)   React将DOM抽象为虚拟DOM,虚拟DOM其实就是用一个对象来描述DOM,通过对比前后两个对象的差异,最终只把变化的部分重新渲染,提高渲染的效率。   为什么用虚拟dom,当dom反生更改时需要遍历 而原生dom可遍历属性多大231个 且大部分与渲染无关 更新页面代价太大。   VituralDOM的处理方式 1 用 JavaScript 对象结构表示 DOM 树的结构,然后用这个树构建一个真正的 DOM 树,插到文档当中 2 当状态变更的时候,重新构造一棵新的对象树。然后用新的树和旧的树进行比较,记录两棵树差异 3 把2所记录的差异应用到步骤1所构建的真正的DOM树上,视图就更新了

标签:DOM,基础,React,虚拟,UI,组件,JSX,Native
From: https://www.cnblogs.com/laolitou-ping/p/17385480.html

相关文章

  • 基础-字符串驻留池
    字符串驻留池(stringinternpool)是指,对于某些编程语言,相同的字符串字面值(即具有相同文本内容的字符串)在程序运行时只会被在内存中存储一份,即只保存一个字符串实例。这样做可以减少内存占用,并提高程序执行的效率。在Java中,字符串驻留池是一个存储字符串的缓存,它存储在运行时常量......
  • Java基础之时间相关的类有哪些?
    前言我们在开发时,除了数字、数学这样的常用API之外,还有日期时间类,更是会被经常使用。比如我们项目中必备的日志功能,需要记录异常等信息产生的时间。还有数据库中的表,也经常需要带有日期时间字段,用于记录本条数据产生和更新的时间。另外当我们需要对某段代码进行调优时,也往往需要......
  • 【0基础学爬虫】爬虫基础之自动化工具 Pyppeteer 的使用
    大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫,本期为自动化工具Pyppeteer的使用。概述......
  • 区块链基础知识
    nonce规则为了防止交易重播,ETH(ETC)节点要求每笔交易必须有一个nonce数值。每一个账户从同一个节点发起交易时,这个nonce值从0开始计数,发送一笔nonce对应加1。当前面的nonce处理完成之后才会处理后面的nonce。注意这里的前提条件是相同的地址在相同的节点发送交易。以下是nonce使用......
  • using method 'mysql_native_password' failed with message
    错误消息:Connectionopenerror.Authenticationtohost'10.114.129.206'foruser'root'usingmethod'mysql_native_password'failedwithmessage:Readingfromthestreamhasfailed.DbType="MySql";ConfigId=""......
  • 爬虫学习基础
    第一个爬虫程序,抓取网页源码并保存为html文件fromurllib.requestimporturlopenurl='http://www.baidu.com'res=urlopen(url)#print(res.read().decode('utf-8'))withopen('save_baidu.html','w',encoding='utf-8')asf:......
  • 《Linux高性能服务器编程》学习记录(二)linux网络编程基础API
    Linux网络API主要有三种:socket地址API。socket最开始的含义是一个IP地址和端口对(ip,port)。它唯一地表示了使用TCP通信的一端,称其为socket地址。socket基础API。socket的主要API都定义在sys/socket.h头文件中,包括创建socket、命名socket、监听socket、接受连接、发起连接、读写......
  • 产品经理-基础-重心-误区
    基础1、视野(扩展)、国内外产品资料2、表达能力(笔记、草稿)3、技术:前端H5.......4、逻辑思维:设计与用户使用是否缺陷5、基础电脑操作重心1、实操2、认识外-->内,重点难点3、流程误区1、盲从、信大厂2、捞针,无目的3、重工具(要注重整体)、RP......
  • Python爬虫零基础教学第二天
    Python爬虫高级开发/大数据抓取/从入门到精通/商业项目实战(2)开始时间2023-05-08 21:26:37结束时间2023-05-08 23:08:20一、调试模式的介绍 鼠标右键,在出现的选项中找到检查进入调试模式,或者按键盘上的f12键进入调试模式。  二、Cookie使用cookie进行会话保持 ......
  • 【nodejs基础】Express、路由、中间件详解04
    一、Express简介Express是基于Node.js平台,快速、开放、极简的Web开发框架通俗的理解:Express的作用和Node.js内置的http模块类似,是专门用来创建Web服务器的。本质就是一个npm上的第三方包,提供了快速创建Web服务器的便捷方法中文官网http://www.expressjs.com.cn......