React案例知识点解读 【ES6】新特性用法

前面有写过一篇React的实战小案例 React项目 实战案例 实用推荐收藏-CSDN博客,有同学对里面的部分知识点有疑问,在这里专门出一片实战部分知识点解读,以方便更好的理解。

欢迎参考以及交流,谢谢。

目录

1.const 关键字 

2.箭头函数

3.es6新特性扩展运算符 。。。

4.react表单 使用受控组件的方式提交数据

5.三元表达式  条件操作符 (?:)


1.const 关键字 

cosnt 是es6新增的一个关键字,用于声明一个只读变量。

定义一个username变量  

//es6的简写形式const {username} = this.props;//等同于下面的代码const username = this.props.username;

所以react案例中const这句话 

相当于

const shop = this.props.data.shop;
const product = this.props.data.product;
const price = this.props.data.price;
const picture = this.props.data.picture;
const ifCommented = this.props.data.ifCommented;//上面的代码用es6新特性可以简写为
const { shop,product,price,picture,ifCommented} = this.props.data;
2.箭头函数

箭头函数是es6中最重要的一个新特性,简单的理解可以是简化代码,即当函数只有一个参数时可以省略(),当函数只有一个return时,可以省略{}、return。

案例中大部分函数都是这样写的

上面的函数等同于这样写

function handleOpenEditArea () {  editing = true;    
}
3.es6新特性扩展运算符 。。。

es6的扩展运算符,它的语法很简单,使用三个点号表示“...”。可以将一个数组转为用逗号分隔的参数序列。

一个简答的案例

//拷贝数组
var array0 = [1,2,3];
var array1 = [...array0];
console.log(array1);//[1, 2, 3]

react案例中是这样用的:这里的...item 就是 this.state.data遍历的一个数组数据,newData数据是用户提交评论之后数据保存到服务器更新之后的数据重新赋值给 data,也就是代码中:this.setState({data:newData}) 部分。

而this.state.data数据就是模拟从服务器获取的mock数据。下面的代码:

this.setState({data}) 
//等同于下面代码,键和值一样时,可以省略简写成上面的代码
this.setState({data:data})  

4.react表单 使用受控组件的方式提交数据

这里评价输入框用户修改数据,触发handleCommentChange这个方法state发生变化,组件重新被渲染,人的人方法重新执行,<textarea/> 中的value的值{this.state.comment}重新设置成新的值。

生疏的同学可以参考这篇react基础知识回顾:React基础知识 精简全面 推荐-CSDN博客

5.三元表达式  条件操作符 (?:)

条件操作符是JavaScript唯一一个三元操作符。在代码中一般是这样的

x > 0 ? x : -x //x的绝对值 

在react案例中有多处使用,我们拿其中一个评价按钮如何用表达式来控制显示内容来看:这里我们用ifCommented 的值来作为条件,如果ifCommented 为true 说明订单已经进行评价,我们就显示已评价,否则ifCommented为false,就显示评价按钮。

条件操作符的操作数可以是任意类型。即案例中的ifCommented。

后续会继续补充.....,也欢迎大家评论区交流补充。

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

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

相关文章

实战内测-某内测项目站点FUZZ到Sql注入

0x1 前言 下面给师傅们分享的案例呢是前段时间实战的一个站点&#xff0c;也是我朋友前段时间让我测的一个站点。整体的测试流程也还算ok&#xff0c;然后里面有些细节要是对师傅们有帮助可以收藏下&#xff0c;后面主要是利用FUZZ打了一个sql注入漏洞上去。 0x2 fuzz和sql结…

嵌入式学习Day17---Linux软件变编程

目录 ​编辑 一、Linux 系统 1.1.Linux服务器 1.2.Linux嵌入式 1.3.Linux系统上的软件开发 1.操作系统 2.Linux内核 3.man手册 1.4.shell命令 1.基本命令 2.文件查看命令 3.文件查找命令 4.压缩解压文件 5.其他命令 6.通配符 7.管道 8.重定向 1.5.虚拟机上网 1.NAT模式 …

【中项】系统集成项目管理工程师-第9章 项目管理概论-9.1PMBOK的发展与9.2项目基本要素

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…

旷野之间30 - 创业者如何更好的获取VC

让我们来谈谈初创公司创始人如何获得资金——以及他们为什么没有获得资金。 很多初次创业的企业家都向我咨询如何帮助他们的公司获得资金。现在&#xff0c;我不再做这些了&#xff0c;但我确实认识很多风险投资 (VC) 和天使投资者&#xff0c;所以我问了他们中的很多人&#…

JavaWeb开发——Eclipse安装配置教程

一、安装 1.Eclipse官方下载网站&#xff1a;https://www.eclipse.org/downloads/packages/ 2.点击Eclipse IDE for Enterprise Java and Web Developers进行安装 3.按需求选择操作系统的版本 4.点击DownLoad 5.打开文件并解压 6.打开文件 7.打开程序 8.配置安装 出现以…

基于站点的中国6小时PM2.5数据集(1960-2020)

基于站点的中国6小时PM2.5数据集&#xff08;1960-2020&#xff09; 数据介绍 几十年来&#xff0c;PM2.5改变了地球上的辐射平衡&#xff0c;增加了环境和健康风险&#xff0c;但直到2013年才在中国得到广泛监测。历史长期 PM2.5具有高时间分辨率的记录是必不可少的&#xff0…

《代码大全》读书笔记-第5章 软件构建的设计

有人会说&#xff0c;设计不是真正的构建活动。但在小项目中&#xff0c;包括设计在内的许多活动都被认为是构建。有些设计更关注系统级问题&#xff0c;许多设计工作留给构建。有些大型项目设计非常详细&#xff0c;导致编码成为一项机械性劳动。小型项目的设计更多的是程序员…

【Kafka】对 kafka 消费程序客户端进行监控采集

前言 对于 Kafka 组件而言&#xff0c;我们通常会对 kafka 服务端添加一些监控&#xff0c;来确保服务的稳定性&#xff0c;虽然有 kafka-exporter 来对消费者进行监控&#xff0c;但是指标很少&#xff0c;对于生产者和消费者更细粒度的监控就无法做到了。只能将监控部署在客…

Java | Leetcode Java题解之第307题区域和检索-数组可修改

题目&#xff1a; 题解&#xff1a; class NumArray {private int[] tree;private int[] nums;public NumArray(int[] nums) {this.tree new int[nums.length 1];this.nums nums;for (int i 0; i < nums.length; i) {add(i 1, nums[i]);}}public void update(int inde…

C++(week15): C++提高:(三)计算机网络

文章目录 一、计算机网络基础1.协议概念2.分层模型3.协议格式(1)以太网帧格式(2)IP段格式(3)TCP/UDP数据报格式4.TCP协议(1)TCP协议的特点(2)三次握手(3)四次挥手(4)SYN攻击5.状态迁移图的解析:11种状态6.TCP通信状态与程序结合分析二、网络编程(Socket编程)1.网络编程基础2.字…

快速识别音频文件转成文字

一、SenseVoice概述 阿里云通义千问开源了两款语音基座模型 SenseVoice&#xff08;用于语音识别&#xff09;和 CosyVoice&#xff08;用于语音生成&#xff09;。 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测&#xff0c;有以下特点&#xff1a; 多语言…

数据结构与算法 - 数组

一、数组 1. 概述 定义&#xff1a;在计算机科学中&#xff0c;数组是由一组元素&#xff08;值或变量&#xff09;组成的数据结构&#xff0c;每个元素有至少一个索引或键来标识。 因为数组内的元素是连续存储的&#xff0c;所以数组中元素的地址&#xff0c;可以通过其索引…

手把手教你用家用电脑完成图片和视频AI去水印功能

一.效果展示 二.video-subtitle-remover源码地址 soda151314/video-subtitle-remover: 基于AI的图片/视频硬字幕去除、文本水印去除&#xff0c;无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API&#xff0c;本地实现。AI-based tool for removing hard-cod…

随堂测小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;试题信息管理&#xff0c;标签类型管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;考试成绩&#xff0c;试题信息&#xff0…

SOMEIPSRV_RPC_11: 字段的设定器和有效载荷

测试目的&#xff1a; 验证字段的setter方法是否按照规范要求&#xff0c;通过请求/响应调用实现&#xff0c;其中请求消息的负载包含期望的字段值&#xff0c;响应消息的负载包含已设置到字段的值。 描述 本测试用例旨在验证DUT&#xff08;Device Under Test&#xff0c;被…

【区块链+绿色低碳】碳低链 | FISCO BCOS应用案例

在碳中和、碳达峰国家战略的号召下&#xff0c;碳中和数字化、协同低碳的发展如火如荼。但是在金融业的实际场景应用中&#xff0c; 存在数据收集效率低、数据核查困难、服务单一等问题&#xff0c;痛点集中为两个&#xff1a;一是数据冗杂&#xff0c;可能会存在数据篡改&…

MySQL存储引擎和

MySQL存储引擎 在数据库中保存的是一张张有着千丝万缕关系的表&#xff0c;所以表设计的好坏&#xff0c;将直接影响着整个数据库。而在设计表的时候&#xff0c;最关注的一个问题是使用什么存储引擎。MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种…

LeetCode 144.二叉树的前序遍历 C写法

LeetCode 144.二叉树的前序遍历 思路&#x1f9d0;&#xff1a; 遍历很简单&#xff0c;但是我们需要开空间进行值的存储&#xff0c;结点个数也可以用递归进行统计&#xff0c;开好空间就可以用数组进行值的存储&#xff0c;注意下标要么用全局&#xff0c;要么指针解引用&…

Astro 实现TodoList网页应用案例

Astro 是一个现代化的静态站点生成器和前端框架&#xff0c;它具有独特的设计理念&#xff1a;岛屿架构。它允许开发人员使用组件化的方式构建内容优先的网站&#xff0c;将各种技术栈&#xff08;如React、Vue、Svelte等&#xff09;的组件无缝集成到同一个项目中。 1、创建项…

使用注意力机制的seq2seq

一、背景 1、机器翻译中&#xff0c;每个生成的词可能相关于源句子中不同的词&#xff0c;但是之前用的是最后一个RNN层出来的context。 2、加入注意力 &#xff08;1&#xff09;假设输入序列中有&#x1d447;个词元&#xff0c; 解码时间步&#x1d461;′的上下文变量是…