React+ES6的语法坑
来源:互联网 发布:淘宝有手续费吗 编辑:程序博客网 时间:2024/06/06 01:50
- 组件定义
- propTypes and getDefaultProps
- getInitialState
- this
- Mixins
组件定义
最早的时候我们使用 React.createClass 来进行组建的构建。
import React from 'react';const Contacts = React.createClass({ render() { return ( <div></div> ); }});export default Contacts;
现在我们可以用ES6中的继承 extend 来写。
import React from 'react';class Contacts extends React.Component { constructor(props) { super(props); } render() { return ( <div></div> ); }}export default Contacts;
propTypes and getDefaultProps
这里有很多重要的变化包括默认属性,设置初试状态。在 React.createClass 中,我们可以通过propTypes 来定义属性,通过 getDefaultProps 来返回我们需要默认设置的值。
import React from 'react';const Contacts = React.createClass({ propTypes: { }, getDefaultProps() { return { }; }, render() { return ( <div></div> ); }});export default Contacts;
而使用React.Component则可以使用 propTypes 作为一个类的基本属性,这样的改变更加有助于清晰的API设计,同样的设置默认值也变成了一个属性 defaultProps.
import React from 'react';class Contacts extends React.Component { constructor(props) { super(props); } render() { return ( <div></div> ); }}Contacts.propTypes = {};Contacts.defaultProps = {};export default Contacts;
getInitialState
在老版本的react中我们通过使用 getInitialState 来设置一些初试状态。
而在使用新的继承来做的话,我们可以直接在 constructor 中来进行赋值声明。
import React from 'react';class Contacts extends React.Component { constructor(props) { super(props); this.state = { }; } render() { return ( <div></div> ); }}export default Contacts;
this
使用 React.createClass会正确的自动绑定this到当前执行的函数中去。但是这个在ES6中会有些不一样。我们需要在contructor中执行bind函数或者使用ES6箭头函数。
import React from 'react';class Contacts extends React.Component { constructor(props) { super(props); this.handleClick = this.handleClick.bind(this); } handleClick() { console.log(this); // React Component instance } render() { return ( <div onClick={this.handleClick}></div> ); }}export default Contacts;
Mixins
在老版本中我们可以这样使用 mixins ,
import React from 'react';var SomeMixin = { doSomething() { }};const Contacts = React.createClass({ mixins: [SomeMixin], handleClick() { this.doSomething(); // use mixin }, render() { return ( <div onClick={this.handleClick}></div> ); }});export default Contacts;
而在使用ES6创建类的时候,不再支持 minxins。
阅读全文
0 0
- React+ES6的语法坑
- ES6语法重构的react组件
- React中的es6语法
- React中es6语法解析
- React-Native ES6使用语法和underscore的使用
- react的es6写法
- 1、React Native 中ES6语法解析
- 【ReactNative】react native 中es6语法解析
- react native ES6语法规则记录
- [react native]学习日志---es6语法学习
- 使用ES6语法重构React组件
- React ES5与ES6语法写法比较
- es6常用的语法
- ES6的语法
- React-redux-webpack项目总结之用到的Es6基本语法
- react与es6的结合
- react---react创建组件的三种方式以及区别:无状态组件、工厂模式、es6语法定义
- React+ES6
- react.js
- 算法学习笔记之计算几何--线段
- gensim 之 相似性查询
- Latex数学公式中的空格
- 算法学习笔记之计算几何--平面凸包
- React+ES6的语法坑
- php本页面表单输入验证
- EasyUI学习总结(三)——easyloader源码分析
- git撤销修改
- delphi 快捷键
- 算法学习笔记之计算几何--三角形,多边形与圆
- glog 入门教程
- 我们应该试着踏出第一步
- svhn数据集处理