博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
react 学习手记
阅读量:7114 次
发布时间:2019-06-28

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

react项目开发手记

一、Fragment 占位

react组件中要求组件内容必须包含在一个标签中,不然会报错

我们通常的做法是,在最外层包裹一个
div标签,但是这个div标签最终会渲染到页面中,如果我们不想要让它显示的话,我们可以利用
Fragment来解决。

解决办法如下

import React, { Component, Fragment} from 'react';class App extends Component {  render() {    return (      
hello

11111

); }}export default App;

clipboard.png

二、事件绑定时的this指向问题

场景

如果在事件函数中直接使用this.state会报错state未找到,这时候我们console.log以下发现是undefined,难怪会报错呢,我们是想要让他指向我们的todoList组件,这样我们就能调用到了。

解决办法

// 调用ES6的bind方法,重新指定this指向    this.handleChange = this.handleChange.bind(this);    this.handleFocus = this.handleFocus.bind(this);
  • 另外在修改state的时候,我们需要使用setState方法来实现。

三、ES6进行添加和删除数组成员

// add  this.setState({    list: [...this.state.list, this.state.inputVal]  })
// 删除let list = [...this.state.list];list.splice(index, 1);this.setState({  list: list,  inputVal: ''})// 思考this.state.list.splice(index, 1);this.setState({    list: this.state.list})// 这样看起来是没问题,react中有immutable概念// 但是react中不建议对state直接修改,而是推荐使用setState来修改

四、jsx补充

注释

{/*我是注释*/}{  //多行注释}

class和for

// react中规定class => classNamefor => htmlFor

html语句

dangerouslySetInnerHTML={__html: item}// 同过上诉方法就可以将

这类字符串变为html样式。// 但是存在一定的风险,容易受到攻击,因此不推荐使用

五、react代码优化

优化一

clipboard.png

优化二

clipboard.png

优化三

clipboard.png

对于this的从新绑定,最好在constructor中就对其进行绑定,如果你还在jsx表达式中进行绑定的话,这样会影响性能的。

优化四

clipboard.png

优化五

clipboard.png

优化六

clipboard.png

优化七

clipboard.png

未完待续!!

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

你可能感兴趣的文章
UEFI EVENT 全解
查看>>
python时间模块小结
查看>>
BZOJ3997:[TJOI2015]组合数学(DP,Dilworth定理)
查看>>
C# Application.DoEvents() 处理队列消息,防界面假死。
查看>>
python基础===python实现截图
查看>>
Django模型
查看>>
Quartus中代码字体大小的调整方法
查看>>
配置url防盗链、目录权限访问控制Directory、文件访问权限控制FilesMatch
查看>>
【spring boot】4.spring boot配置多环境资源文件
查看>>
关于datepicker如何获取月中日长
查看>>
神经网络练习四-ex4
查看>>
通用for_each清理容器模板函数
查看>>
MVC5发布到IIS,出现HTTP 错误 404.0 - Not Found的完美解决方法
查看>>
c# 与 java 语法异同
查看>>
cleanup failed because the file not under version control问题的解决
查看>>
html+css+js实现滑动导航条(转载)
查看>>
BZOJ 2039人员雇佣
查看>>
angular ng-repeat出来的数据 每条修改数据后返回给接口 如何取到每个对应修改的值...
查看>>
nodeJs express mongodb 建站(linux 版)
查看>>
java使用websocket,并且获取HttpSession,源码分析
查看>>