react知识总结

react是什么

用于动态构建用户界面的javaScript库 (只关注视图)

react是谁开发的

由Facebook开发,且开源。

react的优点

1、高效,使用虚拟DOM+优秀的Diff算法,尽量减少与真实DOM的交互
2、组件化开发
3、声明式编码
3、在React Native中可以使用React语法进行移动端开发

react如何将虚拟DOM渲染到页面

ReactDOM.render(被渲染的虚拟DOM,document获取的根节点)

创建组件的两种方式

函数组件

function View() {return (// 语法上必须要有根元素包裹// 可以用es6语法<div ><h1>这是一个函数组件</h1></div>);
}

类组件

import React, { Component } from 'react';class View extends Component{render() {return (<div>这是一个text类组件</div>)}
}

组件传参

父传子

场景一:

传递变量
父组件中直接绑定变量
语法:
传递单个 <Son data={obj}/>
传递多个 <Son data={obj}{...obj2}/> or <Son data1={obj1} data2={obj2}></Son>
子组件this.props.data接收
data 是自定义的属性名

为什么传的第二个对象不解构会报错?
因为第一个对象会有data作为属性名,而第二个对象不解构就没有属性名
【注意】:扩展运算符是不可以直接在对象上使用,这是是因为有react环境的支持

场景二:

传递内容
组件极少部分不同时使用
父组件中双标签包裹内容
语法: <Son><a>我是父组件传来的内容<a></Son>
子组件用this.props.children接收

一般用双标签,也就是为了这样传递参数

场景三:

传递组件
大多用于子组件大部分相同,少数不同时使用
父组件绑定组件名称
语法:<Parent left={ <Son1> }> <Parent left={ <Son2> }>
子组件this.props.left接收
left 是自定义的属性名

简化写法

那我们都知道双标签里的内容可以用this.props.children接收
下边是一种更简单的写法
<Son children="内容" />
<div {...this.props} >
这两个有同样的效果,这样你可能看不出简便在哪里,看例子

当我们复用一个组件时,往往会接收多个参数,className…… 、activeClassName、children

  • 正常的写法(看上去已经够简便了吧)
    <Son className="" activeClassName="" …… >内容</Son>
    <div {...this.props}>{this.porps.children}</div>

  • 单标签接收children(这样用是不是就更加简便了呢)
    <Son className="" activeClassName="" children="内容" />
    <div {...this.props}></div>

混合使用

this.renderProps

实现过程
有A、B、C
A和B确定是父子关系
A组件中写入<A render={(name)=><C name = {name} /> }/>
B 中this.props.render(name)
此时C组件就成了B组件的子组件,可以接收到属性为name的参数

说这样是在B组件中预留了一个类似插槽的作用
可以拿到B组件的数据
修改时直接在A组件中修改()

子传父

通过函数的回调方式
父组件通过子组件的标签传递函数,子组件调用函数即可
语法<Son callback={fn}></Son>
子组件通过this.props.fn() 执行函数

react的文件目录

1、pubilc

	- index.html- favicon.ico- manifest.json移动App的配置文件,用于指定应用的显示名称、图标、入口页面等信息.

2、src

- components- alertindex.jsx- footerindex.jsx- navindex.jsx比如:导航、弹出层、loading加载动画、分页器等
- images凡事页面中<img src>标签使用的图片
- js页面中编写的js功能及开发文件
- storereduxmobxcontext
- stylesimg/css、less、scss
- unitjs一些组件比如,如果不用jq,自己封装一些js 的方法如果手机端有活动页面都需要下载app,同的app 的判断如果有弹出去js等
- viewshomeindex.jsxaboutindex.jsxjoinedindex.jsxlist.jsxother.jsx
- other

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

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

相关文章

基于 Mesh 的统一路由在海外业务的实践

简介&#xff1a;本文主要介绍我们最近在利用 Service Mesh 架构解决海外业务问题中一些实践和价值探索。我们在海外业务引入 Mesh 架构过程中&#xff0c;充分利用 Istio 的基于 yaml 来描述和定义路由的抽象能力&#xff0c;制定了企业流量治理标准&#xff0c;并将集团海外业…

中国RISC-V机遇与变革下,赛昉科技发布两款高性能新品

8月23日&#xff0c;专注于RISC-V芯片研发的赛昉科技举办2022新产品发布会&#xff0c;发布两款重磅新品&#xff1a;全球首款量产高性能RISC-V多媒体处理器——昉惊鸿7110&#xff08;JH7110&#xff09;&#xff0c;和全球性能最高的量产RISC-V单板计算机——昉星光 2&#x…

小米电商 Apache Dubbo-go 微服务实践

简介&#xff1a;2021 年是小米中国区电商部门变动调整较大的一年&#xff0c;小米中国区早期电商、服务体系建立在 Go 语言构建的微服务体系之上&#xff0c;由内部自研的 Go 语言微服务框架 koala 支撑起数以千计的微服务应用。随着业务的发展&#xff0c;新零售体系的成立以…

sass的使用方法

sass的优缺点 优点&#xff1a;css预处理器为css增加一些编程的特性&#xff0c;无需考虑浏览器的兼容性问题。支持嵌套、变量和逻辑等。可以让css更加简介、提高代码复用性、逻辑分明等等。 缺点&#xff1a;css的文件体积和复杂度不可控&#xff1b;增加了调试难度和成本 常用…

RocketMQ 端云一体化设计与实践

简介&#xff1a;本文首先介绍了端云消息场景一体化的背景&#xff0c;然后重点分析了终端消息场景特点&#xff0c;以及终端消息场景支撑模型&#xff0c;最后对架构和存储内核进行了阐述。我们期望基于 RocketMQ 统一内核一体化支持终端和服务端不同场景的消息接入目标&#…

计算机死机的时候,它在干什么?

作者 | 轩辕之风来源 | 编程技术宇宙今天花几分钟跟大家分享一个很有意思又能涨知识的问题&#xff1a;电脑死机的时候到底在干什么&#xff1f;电脑死机&#xff0c;应该每个接触计算机的小伙伴都经历过吧。尤其是早些年&#xff0c;电脑配置还没现在这么高的时候&#xff0c;…

交付铁三角的故事之兵戎相见

简介&#xff1a;大家好&#xff0c;交付铁三角带着全新的故事来啦&#xff01;一直被应用交付难题所困扰的他们这次又遇到了新的难题&#xff0c;售前大佬的一句客户资源规划缘何让开发铁子暴怒&#xff0c;交付小锤的劝架为何致使自己的交付团队陷入这场漩涡之中&#xff0c;…

一位“老程序员”的反思:C、Python、Java 不可兼得,专心学好一门编程语言就行!...

摘要&#xff1a;大多数程序员在其职业生涯中&#xff0c;接触到的编程语言不止一种&#xff0c;但主要掌握并运用的多数只有一门。那么在数量繁多、适用领域各不相同的编程语言中&#xff0c;哪一门更适合你来学习呢&#xff1f;“老程序员”Eleanor Berger 总结了这些年来他对…

高效使用Java构建工具|Maven篇|云效工程师指北

简介&#xff1a;高效使用Java构建工具&#xff5c;Maven篇。众所周知&#xff0c;当前最主流的Java构建工具为Maven/Gradle/Bazel&#xff0c;针对每一个工具&#xff0c;我将分别从日常工作中常见的场景问题切入&#xff0c;例如依赖管理、构建加速、灵活开发、高效迁移等&am…

react中的axios配置文件

const { createProxyMiddleware } require(http-proxy-middleware); module.exports function(app) {app.use(/home, createProxyMiddleware({// 目标地址target: https://home-api.pinduoduo.com,// 修改原地址changeOrigin: true,}));app.use(/api,createProxyMiddleware({…

布局云与边缘之后,Akamai 为何加码安全领域

作者 | 宋慧 出品 | CSDN 云计算 随着云的深入和普及&#xff0c;云上的安全也变得愈加重要。CSDN 系列技术直播栏目《大咖来了》就曾重点讨论 云上安全的攻防之道 &#xff0c;以及云原生的安全发展。 最近&#xff0c;发明 CDN 技术的资深技术厂商 Akamai&#xff0c;继增强…

Dubbo-go 服务代理模型

简介&#xff1a;HSF 是阿里集团 RPC/服务治理 领域的标杆&#xff0c;Go 语言又因为其高并发&#xff0c;云原生的特性&#xff0c;拥有广阔的发展前景和实践场景&#xff0c;服务代理模型只是一种落地场景&#xff0c;除此之外&#xff0c;还有更多的应用场景值得我们在研发的…

探索AI视觉技术新应用,夸克扫描王首推“离线模式”端侧AI算法提升隐私安全

手机扫描正在超越传统扫描仪&#xff0c;给大学生和职场人带来更高效、更便捷的信息服务体验。 在基于手机相机功能的搜索行为中&#xff0c;大学生的学习场景占比超过一半。 手机扫描的“离线模式”&#xff0c;让夸克成为第一个将扫描AI算法上端的App。 各大高校开学在即&…

作业帮云原生降本增效实践之路

简介&#xff1a;目前&#xff0c;作业帮已经和阿里云有一个关于 AEP 的 tair 方案的结合&#xff0c;在新的一年希望我们有更大规模的落地。文章里讲得比较多的是关于降本做的一些技术改进&#xff0c;其实在降本增效这里面还有很大一块工作量是运营&#xff0c;成本运营我们也…

基于 Serverless 打造如 Windows 体验的个人专属家庭网盘

简介&#xff1a;虽然现在市面上有些网盘产品&#xff0c; 如果免费试用&#xff0c;或多或少都存在一些问题&#xff0c; 可以参考文章《2020 国内还能用的网盘推荐》。本文旨在使用较低成本打造一个 “个人专享的、无任何限速的、如 Windows 体验的私有云盘”。 作者 | 西流…

react中的state详解

state 理解&#xff1a;state是组件对象最重要的属性&#xff0c;值是对象(可以包含多个key—value组合) state中的值可以修改&#xff0c;修改的唯一方法是调用this.setState,每次修改以后&#xff0c;自动调用 this.render 方法&#xff0c;再次渲染组件。&#xff08;也就是…

Apsara Stack 技术百科 | 数字化业务系统安全工程

简介&#xff1a;数字化平台已经与我们生活紧密结合&#xff0c;其用户规模庞大&#xff0c;一旦系统出现故障&#xff0c;势必会造成一定生活的不便。比如疫情时代&#xff0c;健康码已经成为人们出门必备的条件&#xff0c;一旦提供健康码服务平台出现故障&#xff0c;出行将…

支撑百万级传感器的延时队列

文/升哲科技 刘鹏 摘要&#xff1a;本文主要描述升哲科技在打造物联智慧城市平台过程中关于如何实现延时队列服务的技术选型经验、延时队列服务的架构设计以及延时队列的底层细节实现原理。 背景 升哲科技是一家物联网与人工智能领域的国家高新技术企业、独角兽企业。 要打…

深度解析|基于 eBPF 的 Kubernetes 一站式可观测性系统

简介&#xff1a;阿里云 Kubernetes 可观测性是一套针对 Kubernetes 集群开发的一站式可观测性产品。基于 Kubernetes 集群下的指标、应用链路、日志和事件&#xff0c;阿里云 Kubernetes 可观测性旨在为 IT 开发运维人员提供整体的可观测性方案。 作者&#xff1a;李煌东、炎…

系列解读SMC-R:透明无感提升云上 TCP 应用网络性能(一)| 龙蜥技术

简介&#xff1a;已有的应用若想使用RDMA技术改造成本高&#xff0c;那么有没有一种技术是不做任何改造就可以享受RDMA带来的性能优势&#xff1f; 文/龙蜥社区高性能网络SIG 引言 Shared Memory Communication over RDMA (SMC-R) 是一种基于 RDMA 技术、兼容 socket 接口的内…