react使用总结

news/2025/6/19 17:27:04

最近学了一些 react 和es6 的一些知识,并且使用 react 写了一个 TodoList 项目===>预览 && 源码 感觉学的挺多的,并且遇到的坑也不少?,说实话,一开始学 react 看到 jsx 语法有点不适应,说好的结构和行为分离呢?,不过随着通过一个项目的完成,渐渐明白了这么写的好处

好处

  • 自定义标签
  • 结构清晰
  • 代码模块化
  • 更加语义化

不过也有缺点

  • 浏览器不支持这语法
  • 必须通过一大堆工具来转换

一些需要注意的点

1. react声明组件时,组件名称必须以大写字母开头如?:<Todo />
2. 每个标签必须闭合,因为采用的 js+xml 写法,如?: <input />
3. 组件的返回值只能有一个顶层元素,如?:

下面是错误的:

render () {return (<div>1</div><div>2</div>)
}

必须这样

render () {return (<div><div>1</div><div>2</div></div>)
}

4. return后面要加一个括号,目的是防止 JavaScript 代码在解析时自动在换行处添加分号:

     renderSquare(i) {return (<Todo />);}

5. render()里面不能写 class,for,而是要写成classNamehtmlFor,因为 class ,for 是 javascript 的关键字,因此不能使用,如

下面是错误的

<div class=“xxx”>

而是要写 className:

<div className="xxx">

6. 不要直接更新状态,如

 this.state.comment = 'Hello';

此代码不会重新渲染组件的,之前就这么写,啥反应也没有?,应该要用setState():?

 this.setState({comment: 'Hello'});

注意!!:构造函数(constructor)是唯一能够初始化 this.state 的地方。)

7. 使用style

我们在 html 可以这么写:

<div style="background-color:red;"></div>

但是在 jsx 里面却不能这么写,必须用两个花括号包裹,并且里面不能写-,要用驼峰形式写,如上面的 background-color写成backgroundColor:

<div style={{backgroundColor: 'red'}}></div>

8. 关于 setState

setState方法用于更新当前组件的state状态值,但调用这个方法后,state并不会立即更新,而是在render方法调用后才会更新

react 特点

  1. 虚拟DOM: React是以数据驱动的,每次数据变化React都会扫描整个虚拟DOM树,自动计算与上次虚拟DOM的差异变化,然后针对需要变化的部分进行实际的浏览器DOM更新。
  2. 组件化: React可以从功能角度划分,将UI分解成不同组件,各组件都独立封装,整个UI是由一个个小组件构成的一个大组件,每个组件只关系自身的逻辑,彼此独立(比如你有个按钮,很多页面都有这个按钮,那么就可以把这个按钮封装成该组件)。
  3. 单项数据流:React只有单向数据流动-从父节点传递到子节点

https://dhexx.cn/news/show-3861912.html

相关文章

java控制类和测试类_java – 如何使用mockito编写控制器类的单元测试用例

有几件事你似乎已经在你的测试中.有集成测试和单元测试.集成测试将测试所有连接的东西(或几乎所有的东西),所以你使用Spring配置文件非常接近真实的实例,并将实际的对象示例注入到被测试的类中.这大部分是我使用ContextConfiguration,但我结合使用RunWith(SpringJUnit4ClassRun…

ArcEngine 许可初始化问题

ArcEngine 许可初始化问题 今天用AE做拓扑&#xff0c;出现了这个错误提示“The application is not licensed to create or modify schema for this type of data” 关于初始化Engine许可的&#xff0c;其实原理都很简单&#xff0c;大家一般都没有问题&#xff0c;但又往往会…

OAF 常见概念介绍

因为OAF开发的适用面很窄&#xff0c;所以即使OAF开发采用的也是MVC设计模式&#xff0c;但是很多用语都没听过。随着OAF开发的深入学习&#xff0c;如果不熟悉很多专业用语&#xff0c;是很困难的。 此外&#xff0c;OAF开发中面向对象的重用&#xff0c;官方给出的洋葱图如下…

java命令主动清空jvm_JVM_常见命令

JVM参数1. 标准参数java -versionjava -help2. -X参数不常用-Xint 解释执行-Xcomp 第一次使用就编译成本地代码-Xmixed 混合模式&#xff0c;JVM自己来决定3. -XX参数(非常重要了)a . boolean 启用/禁用某个属性格式: -XX:[/-]例如使用GC收集器类型 :-XX: Use…

Http概述(一)

Http使用的是可靠的数据传输协议&#xff0c;因此即使数据来自地球的另一端&#xff0c;也能够确保数据在传输过程中不会被损坏或产生混乱。 这样用户在访问信息时就不用担心其完整性了。 web服务端与服务器是如何通信的 Web内容都是存储在web服务器上的&#xff0c;web服务器所…

C++ 以类为单位的程序结构

以类为单位的程序结构 //dateToWeek.cpp //以类为单位的程序结构#include <iostream> #include <string>using namespace std;//定义日期类 class Date { private :int year;int month;int day; public:Date(int y,int m,int d){this->yeary;this->monthm;t…

java程序员应该同时精通_[转载]Java程序员掌握的10大项知识体系--精通太难说出口...

2、命令&#xff1a;必须熟悉JDK带的一些常用命令及其常用选项&#xff0c;命令至少需要熟悉&#xff1a;appletviewer、 HtmlConverter、jar、 java、javac、javadoc、javap、javaw、native2ascii、serialver&#xff0c;如果这些命令你没有全部使用过&#xff0c;那么你对jav…

矿藏估价

某个矿藏丰富的地区埋有不同价值的矿藏。Mr. Chen某日记起他在此处有一块领地&#xff0c;于是他很想知道自己的领地上到底包含价值多少的矿物。他在该地区的地图上画出了领地的边界&#xff0c;请你来为他做一个资产评估。 假定整个地区的地图为矩形。为了方便起见&#xff0c…

java虚拟机相同吗_你有没有想过: Java 虚拟机是如何判断两个对象是否相同的?判断的流程是什么?...

在 Java 程序运行时&#xff0c;会产生那么多的对象&#xff0c;那 Java 虚拟机是如何判断两个对象是否相同的呢&#xff1f;判断的流程是什么&#xff1f;参考解答&#xff1a;Java 虚拟机会先判断两个对象的hashCode是否相同&#xff0c;如果hashCode不同&#xff0c;则说明肯…

Dojo 学习资源 url

http://www.ibm.com/developerworks/cn/web/wa-dojotoolkit/newto.html 来源url Dojo 学习资源 Page navigation Dojo 入门Dojo 进阶掌握 Dojo 工具包系列(仅适用于 Dojo 1.5 版本)贡献您的观点&#xff01; Dojo 入门 随着富互联网应用程序&#xff08;Rich Internet Applic…