React DAY05

news2024/11/18 16:25:03

复习:

1.JSX中的数据绑定
内容绑定<div>{表达式}</div>
属性绑定<img src={表达式}/>
样式绑定<div className={表达式} style={样式对象}></div>
事件绑定<button onClick={函数} onClick={()=>函数(参数)}></button>
双向数据绑定
受控组件<input value={uname} onChange={e=>setUname(e.target.value)}/>
非受控组件

let resume = useRef( )    //reference引用
let comment = useRef( )
<input  ref={resume} />   
<textarea  ref={comment}></textarea>
onSubmit(){  resume.current.value       comment.current.value }

条件渲染
仿v-show:<div style={{display: 判定表达式?'block':'none'}}>
仿v-if:{ 判定表达式 && JSX } { 判定表达式 ? JSX1 : JSX2 }
列表渲染:
现实:let empList = ['亮亮', '小鑫', '小铭']
理想:

//let empList = [<li>小烙</li>, <li>小蜜</li>, <li>小柔</li>]
<ul>{ empList.map((e,i)=><li key={i}>{e}</li>) }</ul>

2.创建自定义组件的两种语法:
①类式组件(Class Component)

class BuyCount extends React.Component{
		state = { count: 0 }
		//生命周期方法-挂载阶段:constructor() / render() / componentDidMount()
		//生命周期方法-更新阶段:shouldComponentUpdate() / render() / componentDidUpdate()
		//生命周期方法-卸载阶段:componentWillUnmount()
		add = ()=>{  this.setState({count: this.state.count+1})  }
		render(){
			return <button onClick={this.add}>{this.state.count}</button>
		}
	}

②函数式组件(Function Component)

function BuyCount( props ){
		let [count, setCount] = useState(0)
		//生命周期方法
		useEffect( ()=>{
			//生命周期方法1=组件挂载+任意数据更新(新值)
			return ()=>{
				//生命周期方法4=任意数据更新(旧值)+组件卸载
			}
		} )
		useEffect( ()=>{
			//生命周期方法2=组件挂载+指定数据更新(新值)
			return ()=>{
				//生命周期方法5=更新数据更新(旧值)+组件卸载
			}
		} , [依赖列表,...])
		useEffect( ()=>{
			//生命周期方法3=组件挂载
			return ()=>{
				//生命周期方法6=组件卸载
			}
		} , [ ] )   //空依赖
		let add = ()=>{ setCount( count+1 ) }
		return <button onClick={add}>{count}</button>
	}

3.ReactNative组件库

一、React Native组件库

React是一个MVVM框架;
ReactNative是一个基于React框架的移动端UI组件库——是Facebook官方提供的;
官网:https://reactnative.dev/
中文网:https://reactnative.cn/
Vue.js+Vant项目运行原理:

  .vue  =>  Webpack编译  =>  .html/.css/.js   =>   运行于客户端浏览器

React+RN项目运行原理:

  .js/.jsx => Webpack编译  =>  .java或.oc  =>  JAVA或OC编译  =>  .apk或.ipa安装包   =>  安装到手机中运行为原生App(完全脱离浏览器)

(必选操作)运行空白RN项目,在自己的电脑和手机中运行该项目——250MB+
①PC端运行RN项目自带的开发服务器

cd  MyRnApp   &&   npm  start

提示:开发服务器只会占用8081端口

②启动安卓模拟器,安装RN项目编译得到的App
APK路径:MyRnApp\android\app\build\outputs\apk\debug
③启动手机中的App,在App设置中配置开发服务器的IP和端口号
查看Windows服务器当前的真正IP地址: ipconfig
例如,我当前电脑的IP地址是 192.168.0.105

点击手机“菜单键”> Settings > DebugServerHost&PortForDevice > 输入:
	192.168.0.105:8081

④重启手机中的App,会自动连接开发服务器,获取最新的内容

提示:如果出现App闪退、App已停止、App无法启动、App启动后白屏…请重启App、或重新安装App、重启Windows、安装其它的模拟器… 再重试上述几步

二、RN中的样式

第一种:行内样式

<Text  style={{color:'#f00'}}>

第二种:内部样式

let css = StyleSheet.create({	
	danger: {
		color: '#f00',  
	}
})

第三种:外部样式

说明:
①RN中的样式没有“级联”特性,即子组件不会继承父组件的样式——仅有的一个例外:Text中的Text
②RN中的样式只能用style属性赋值,没有class/className属性——RN组件体系中没有任何一个属性是通用的,例如:有的组件没有style、所有组件都没有className、有的组件没有onClick…
③style属性可以赋值为一个样式对象,也可以赋值为一个样式对象的数组
④RN中可用的样式属性比标准CSS要少得多,例如:没有float、background、border…;有些属性虽然有,但是可用值也比标准CSS少得多,例如:display只有flex和none两种选择
⑤RN的样式中没有“选择器”的概念,样式都是对象
⑥RN中的尺寸单位只有: px 和 %,其中px必须省略不写,例如:width: ‘50%’ 或 width: 20 —— 没有rpx、vw、em等单位
⑦字体默认大小是14px(记得省略px),可以很大,也可以很小(没有12px的限制)
⑧RN中的布局只有: display: flex(默认值),而且主轴方向默认是“column”
在这里插入图片描述

三、RN中的组件

RN组件的官网手册:https://reactnative.cn/docs/components-and-apis
①RN中不能使用HTML组件 —— RN中的组件最终都要编译为JAVA,而HTML标签无法编译
②RN官方提供了20个组件;可以使用这20个组件组合定义出更复杂的自定义组件

RN常用组件:
View:视图,是最简单的容器元素,默认都是“弹性容器”,而且主轴方向是纵向
Text:文本,是最简单的文本元素,RN体系内只有Text中可以放置字符串
Image:图像
本地图片:手机中的图片,必须把开发服务器上的图片进行编译打包,才能装进手机中

<Image source={require('../img/xx.png')}/>   无需指定尺寸

远程图片:图片在远程服务器上,只能通过URL地址来访问

<Image source={{uri: '图片的地址'}}  style={{width, height}}/>   必须指定尺寸

TextInput:单行文本输入框/单行密码输入框/多行文本输入框

互联网小知识:

URL:Unified Resource Locator,统一的资源定位符,例如:
      https://www.tmooc.cn:80/img/news/101.jpg
URN:Unified Resource Naming,统一的资源命名符,例如:
      tel: 13501234567、mailto: admin@tedu.cn、
      javascript: window.close()、data: image/png;base64, iVBORw0KGgoA
URI:Unified Resource Identifier,统一的资源识别符,URI = URL + URN

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

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

相关文章

跨境电商卖家:减少客户流失的 5 个最佳策略

关键词&#xff1a;跨境电商卖家、客户流失 跨境电商卖家获取新客户的成本可能比保留现有客户高出 25%。 这是有道理的&#xff1a;您可以花费数周时间研究如何让新客户进入您的业务&#xff0c;并投入大量时间和精力来制定完美的潜在客户生成策略&#xff0c;但如果无法留住合…

VMware创建Linux虚拟机之(五)Spark完全分布式部署教程

Hello&#xff0c;转眼间已到2022年底&#xff0c;学期末…… 总体来说&#xff0c;今年经历了很多&#xff0c;真正的成长了许多&#xff0c;成熟了许多。 只能说&#xff0c;希望&#xff0c;明天依旧美好&#xff01;&#xff01;&#xff01; &#x1f412;本篇博客使用到…

12 系统数据库和数据库工具

1. 系统数据库 Mysql数据库安装完成后会给我们初始化四个数据库&#xff1a; mysql&#xff1a;存储Mysql服务器正常运行所需要的各种信息&#xff08;市区、主从、用户、权限&#xff09;information_schema&#xff1a;提供了访问数据库元数据的各种表和视图&#xff0c;包…

SpringBoot之Redis整合

目录 在pom.xml中添加启动器 application.yml添加配置 API测试 存取字符串类型 存取哈希类型 等效操作redis 字符串类型 本人idea&#xff1a;2020.1.3 springboot&#xff1a;2.7.6 redis&#xff1a;5.0.14.1可用 在pom.xml中添加启动器 <dependency>…

北漂外卖小哥转行程序员,他说:想让家人过上更好的生活,扎心

前言&#xff1a; 对于程序员转行送外卖的新闻我们见得很多了&#xff0c;但是从一名外卖小哥转行做一名Python程序员的新闻&#xff0c;反倒见的很少&#xff0c;但是每年转行做程序员的人大有人在。 朋友16年本科毕业后就开始自己创业&#xff0c;1年后创业失败了&#xff…

SOT23-6 领夹麦克风PD OTG协议芯片

一、简介 目前主流的无线麦克风&#xff0c;或者主播麦克风等等产品&#xff0c;在无线端的技术&#xff0c;基本上就是围绕这三个方向 1、U段方案&#xff0c;这个是最古老&#xff0c;也是应用最多的方案&#xff0c;缺点就是功耗高&#xff0c;成本高 2、非标准的2.4G方案…

第3章 SQL语言

第3章 SQL语言 考试范围&#xff1a; 3.1-3.10 考试题型&#xff1a;计算题 考试内容&#xff1a; &#xff08;可按标准sql、mysql的语法格式来写SQL语句&#xff0c;考试时要求有无明显语法错误&#xff09; Select Insert Delete Update create table alter table …

vTESTstudio入门到精通 - vTESTstudio工具栏介绍_Tools

今天即将介绍一个非常有用的工具栏 - Tool&#xff0c;它可以可视化创建、编辑我们车载网络中常用的dbc、Autosar系统描述文件、LDF、FIBEX、CANdelaStudio、Car2x数据库等文件&#xff0c;基本涵盖了我们用到的所有&#xff0c;大家非常有必要详细的了解下&#xff0c;在有需要…

干扰管理学习日志9-------强化学习_联邦学习_功率分配

目录一、文章概述二、系统环境三、理论模型1.系统目标2.公式推导四、应用算法1.顶层设计2.强化学习(1)输入状态(2)输出动作(3)环境反馈3.联邦学习4.伪代码五、性能表征1.泛化性本文是对论文《Transmit Power Control for Indoor Small Cells: A Method Based on Federated Rein…

数据仓库环境准备完整使用 (第四章)

数据仓库环境准备完整使用一、IDEA 开发环境准备1、创建项目gmall-realtime2、删除当前项目的src目录并创建gmall-realtime模块3、创建子项目4、导入依赖5、创建相关的包6、在 resources 目录下创建 log4j.properties 文件&#xff0c;写入如下内容二、数据仓库运行环境(ODS)1、…

(野火征途 Altera EP4CE10)硬件说明

开发板买了好久了&#xff0c;但是一直都没有去学习。本着不浪费的想法&#xff0c;且通过记笔记来监督自己. FPGA FPGA是一种可以重构电路的芯片&#xff0c;是一种硬件可重构的体系结构。通过编程&#xff0c;用户可以随时改变它的应用场景&#xff0c;它可以模拟CPU、GPU等…

第13章 事务

第13章 事务 考试范围&#xff1a; 13.1-13.10 考试题型&#xff1a; 事务操作 考试内容&#xff1a; 1、事务的概念与特性(ACID) 概念 A transaction is a unitof program execution that accesses and possibly updates various data items事务是程序执行的单元&#xff…

云原生|kubernetes|CKA真题解析-------(11-17题)

第十一题&#xff1a; 创建多容器的pod 题目要求&#xff1a;解析&#xff1a; 多容器pod的创建&#xff0c;先创建一个单容器的pod&#xff0c;然后在此基础上修改即可 解答&#xff1a; 先创建单容器的pod kubectl run kucc1 --imagenginx --dry-runclient -oyaml >11…

css实现环形进度条

效果&#xff1a; 纯css实现进度条&#xff0c;这里用到的核心属性为box-show&#xff0c;box-show可以控制元素的阴影&#xff0c;通过控制元素阴影的移动位置来实现进度条效果。 .box{box-show : 0px 0px 0px 0px #ccc; }box-show有5个参数 第一个参数&#xff1a; 控制元…

第4章 中级SQL

第4章 中级SQL 考试范围&#xff1a; 4.1-4.7 考试题型&#xff1a; 计算题 考试内容&#xff1a; 连接类型&#xff08;与第3章合并考察&#xff09; 视图的定义与使用 事务&#xff08;与17-19章合并考察&#xff09; 完整性的概念 SQL中如何定义、修改各类完整性(Pr…

JVS低代码多账号统一登录介绍

登录操作演示 统一登录能力 JVS整个系统认证采用Oauth2 认证方案&#xff0c;目前支持目前登陆方式如下&#xff1a; 登录方式 说明 账号密码登录 基于JVS的用户名用户密码登录 手机动态验证码登录 基于JVS用户绑定的手机号动态验证码登录 微信扫码关注公众号登录 基于…

web前端-javascript-Math对象(说明和方法,它封装了数学运算相关的属性和方法)

文章目录Math 对象1. 说明2. 方法1) abs()2) Math.ceil()3) Math.floor()4) Math.round()5) Math.random()6) max 和 min7) Math.pow(x,y)8) Math.sqrt()Math 对象 1. 说明 Math 和其他的对象不同&#xff0c;它不是一个构造函数它属于一个工具类不用创建对象&#xff0c;它里…

仿真设计|基于51单片机的简易抢答器

目录 前言 具体实现功能 设计介绍 51单片机简介 设计方案 资料内容 仿真实现&#xff08;protues8.7&#xff09; 程序&#xff08;Keil5&#xff09; 全部资料&#xff08;压缩文件&#xff09; 前言 全部资料包括程序(Keil5)、protues仿真(protues8.7)、仿真视频、…

教育领域知识图谱

教育领域开源的知识图谱实体 在教育领域,有许多开源的知识图谱实体可供使用。下面列出了一些例子: DBpedia:这是一个知识图谱,由 Wikipedia 的内容构建而成。DBpedia 中包含了许多关于人、地方、事物和概念的实体,并且这些实体都具有相关的属性和关系。 Wikidata:这是一个…

LeetCode算法之--二叉树系列

点赞收藏&#xff0c;以防遗忘 本文【程序大视界】已收录&#xff0c;关注免费领取互联网大厂学习资料&#xff0c;添加博主好友进群学习交流&#xff0c;欢迎留言和评论&#xff0c;一起交流共同进步。 【一】前言 二叉树也是面试算法的常见题型&#xff0c;通常程序会自定义…