react 学习手记

发布时间:2019-08-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了react 学习手记脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

react项目开发手记

一、Fragment 占位

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

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

解决办法如下

import React, { Component, Fragment} from 'react';

class App extends Component {
  render() {
    return (
      <Fragment>
        <div>
          hello
        </div>
        <p>11111</p>
      </Fragment>
    );
  }
}

export default App;

@H_126_84@react 学习手记

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

场景

<input type="text" onFocus={this.handleFocus} onChange={this.handleChange}  value={this.state.inputVal} />

如果在事件函数中直接使用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 => className
for => htmlFor

html语句

dangerouslySetInnerHTML={__html: item}

// 同过上诉方法就可以将<h1></h1>这类字符串变为html样式。
// 但是存在一定的风险,容易受到攻击,因此不推荐使用

五、react代码优化

优化一

react 学习手记

优化二

react 学习手记

优化三

react 学习手记

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

优化四

@H_360_351@

优化五

react 学习手记

优化六

react 学习手记

优化七

react 学习手记

demo地址

未完待续!!

脚本宝典总结

以上是脚本宝典为你收集整理的react 学习手记全部内容,希望文章能够帮你解决react 学习手记所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。