博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react使用总结
阅读量:7037 次
发布时间:2019-06-28

本文共 1457 字,大约阅读时间需要 4 分钟。

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

好处

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

不过也有缺点

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

一些需要注意的点

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

下面是错误的:

render () {  return (    
1
2
)}复制代码

必须这样

render () {  return (    
1
2
)}复制代码

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

renderSquare(i) {       return (         
); }复制代码

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

下面是错误的

复制代码

而是要写 className:

复制代码

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

this.state.comment = 'Hello';复制代码

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

this.setState({
comment: 'Hello'});复制代码

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

7. 使用style

我们在 html 可以这么写:

复制代码

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

复制代码

8. 关于 setState

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

react 特点

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

转载地址:http://xhnal.baihongyu.com/

你可能感兴趣的文章
[LintCode] Valid Palindrome 验证回文字符串
查看>>
jQuery的基本语法
查看>>
javascript 数组实例
查看>>
iOS开发UI篇—CAlayer(创建图层)
查看>>
深入理解javascript事件流
查看>>
通过js写一个消息弹框
查看>>
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var mysql 启动不了
查看>>
Leetcode: Non-overlapping Intervals
查看>>
Spring组件扫描<context:component-scan/>使用详解
查看>>
CodeIgniter(3.1.4)框架使用静态文件(js,css)
查看>>
python练习笔记——用函数对列表奇偶分类,且过程不增加新列表
查看>>
CentOS 6.9永久设置静态路由表以及路由表常用设置
查看>>
spring mvc : 中文传值(post/get)中文乱码
查看>>
Mysql中处理1970年前的日期(unixtime为负数的情况)负数时间戳格式化
查看>>
物联网架构成长之路(24)-Docker练习之Compose容器编排
查看>>
iocp (改天完善)
查看>>
030 分布式集群中,设定时间同步服务器,以及ntpd与ntpdate的区别
查看>>
Android - 隐藏EditText弹出的软键盘输入(SoftInput)
查看>>
ActiveMQ + NodeJS + Stomp 极简入门
查看>>
【转】图说设计模式
查看>>