JSX

  1. 使用jsx的使用,用一个{}包裹起来,例如

    const method = {<div> 123 </div>}


  2. 使用()小括号,防止分号自动插入

    const element =
    ( <h1> Hello, {formatName(user)}! </h1> );

      

  3. 如果使用箭头函数,返回的是一个对象的话,使用()包围起来

    const element =
    ( <h1> Hello, {formatName(user)}! </h1> );

      

    组件数据传递

  4. 通过props

    function Comment(props) {
    return ( <div className="Comment"> <div className="UserInfo"> <Avatar user={props.author} /> <div className="UserInfo-name"> {props.author.name} </div> </div> <div className="Comment-text"> {props.text} </div> <div className="Comment-date"> {formatDate(props.date)} </div> </div> ); }

      

    这样的话,就可以通过prop获得到数据,这个数据是只读的,不要修改
  5. 子组件向父组件传递数据

    父:
    bindValue = (e) => { console.log(e)} <Son onChange = {this.bindValue}> 子: <input onChange={this.props.onChange}> 这样的话,子--->父 传递便实现了

      

    State

  6. constructor可以初始化state

    父:
    bindValue = (e) => { console.log(e)} <Son onChange = {this.bindValue}> 子: <input onChange={this.props.onChange}> 这样的话,子--->父 传递便实现了

      

  7. 取得state的值,通过 this.state.date

  8. 改变state,通过 this.setState({}),不要忘记里面要使用{}的方式

  9. 注意事项

    (1)修改方式
    
    // Wrong,页面不会重新渲染
    this.state.comment = 'Hello'; // Correct this.setState({comment: 'Hello'});
    (2)更新是异步的,有时候通过setState设置数据后,打印,输出的值是不对的

      

    绑定函数

    由于this默认是不会绑定到Es6类中的,有几种方法

  10. constructor中设置

     constructor (props) {
    super(props) this.handleClick = this.handleClick.bind(this) }

      

  11. 使用箭头函数

    handClick = () => {this.handClick()}
    不要忘记了后面加入(),得让函数运行,这样的话还一传递参数,如下: handClick = (e) => {this.handClick(e)}

      

    条件渲染

  12. 控制显示和隐藏的时候可以使用 &&

    const show = 1
    show === 1 && <div>hello React </div> 这样就可以控制是否显示,可以通过一个事件控制show的值
  13. 三元表达式

    show ? (<div key='1'> show</div>): (<div key='2'> hidden </div>)
    最后加key,因为页面在渲染的时候会利用重复的元素,不是每一个都要重复渲染,加入key 就会认为是不同的元素

      

React开发时候注意点的更多相关文章

  1. 基于Nodejs生态圈的TypeScript+React开发入门教程

    基于Nodejs生态圈的TypeScript+React开发入门教程   概述 本教程旨在为基于Nodejs npm生态圈的前端程序开发提供入门讲解. Nodejs是什么 Nodejs是一个高性能Ja ...

  2. React开发项目例子

    一.需求 1.分析:用react开发一个类似bootstrap4中的card组件http://v4-alpha.getbootstrap.com/components/card/,界面类似如下: 2. ...

  3. Atom编辑器之加快React开发的插件汇总

    汇总下比较实用的atom插件[偏react开发的]-- 博主发现这个还是比较全面的! atom-react-autocomplete–项目内,组件名及状态的自动补全  autocomplete-js- ...

  4. 用Inferno代替React开发高性能响应式WEB应用

    什么是Inferno Inferno可以看做是React的另一个精简.高性能实现.它的使用方式跟React基本相同,无论是JSX语法.组件的建立.组件的生命周期,还是与Redux或Mobx的配合.路由 ...

  5. vsCode工具做react开发,几个常用插件

    一.环境准备: 1.下载安装VSCode,Node.js,Yarn 2.打开命令行终端或powershell,输入yarn global add create-react-app安装react的脚手架 ...

  6. 使用create-react-app 快速构建 React 开发环境以及react-router 4.x路由配置

    create-react-app 是来自于 Facebook,通过该命令我们无需配置就能快速构建 React 开发环境. create-react-app 自动创建的项目是基于 Webpack + E ...

  7. react学习笔记(一)用create-react-app构建 React 开发环境

    React 可以高效.灵活的用来构建用户界面框架,react利用高效的算法最小化重绘DOM. create-react-app 是来自于 Facebook,通过该命令不需配置就能快速构建 React ...

  8. 【React】使用 create-react-app 快速构建 React 开发环境

    create-react-app 是来自于 Facebook,通过该命令我们无需配置就能快速构建 React 开发环境. create-react-app 自动创建的项目是基于 Webpack + E ...

  9. Webpack笔记(二)——搭建React开发环境

    前几天一直在学习webpack,总算比之前学习的时候有了点收获,所以在昨天发布了一篇webpack入门笔记,今天继续使用webpack练了练手,搭建了一个React开发环境,如果还不熟悉的童鞋可以看一 ...

  10. react 开发 PC 端项目(一)项目环境搭建 及 处理 IE8 兼容问题

    步骤一:项目环境搭建 首先,你不应该使用 React v15 或更高版本.使用仍然支持 IE8 的 React v0.14 即可. 技术选型: 1.react@0.14 2.bootstrap3 3. ...

随机推荐

  1. 2018.10.8 Hibernate中解决乱码问题---配置一个过滤器

    在web.xml中配置下 <filter> <filter-name>encodeFilter</filter-name> <filter-class> ...

  2. C# 打开文件或打开文件夹

    直接打开指定的文件 System.Diagnostics.Process.Start(v_OpenFilePath); 直接打开目录 string v_OpenFolderPath = @" ...

  3. Markdown黑色背景代码高亮

    因为我默认的不是Markdown...这里分享给用Markdown的小伙伴吧. /* 使用了Monokai Sublime的黑色主题皮肤,但是还存在样式冲突,需要自己修改 这个样式只适合使用maked ...

  4. JQuery 禁用后退按钮

    jQuery(document).ready(function () { if (window.history && window.history.pushState) { $(win ...

  5. 浅谈二分查找 JavaScript

    算法介绍 二分查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法.查找过程经历一下步骤: (1)从有序数组的中间的元素开始搜索,如果该元素正好是目标元素,则停止搜索并返回该元素的索引值,否则 ...

  6. Hibernate知识点小结汇总

    Hibernate部分 1.为什么要使用Hibernate开发你的项目呢?Hibernate的开发流程是怎么样的? 为什么要使用 ①.对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复 ...

  7. 开发的服务集群部署方案,以etcd为基础(java)

    当前有很多服务集群部署,但是对于我们自己开发的服务系统怎么样能够解决部署问题,对大家很麻烦和笨重. 首先,我想说对于我们国内,小公司小系统比较多.大型系统毕竟少数,向阿里云看齐的不多.其实所谓的需要集 ...

  8. 使用 form 和 iframe 实现图片上传回显

    主要利用 form 的 target 属性,在提交表单之后 response 返回到 iframe 中 form 的 action 可以自己写,也可以直接利用 富文本编辑器的接口实现上传 <fo ...

  9. ABAP术语-Data Transfer

    Data Transfer 原文:http://www.cnblogs.com/qiangsheng/archive/2008/01/22/1048286.html The entire proces ...

  10. sqlachemy详解

    实习期老大让我学Python...学了很久了好吗,不过确实对其中的一些原理性的东西还不够深入. 比如今天要说的sqlachemy,结合网上做些总结吧 ORM 全称 Object Relational ...