家政小程序功用有哪些_使用ES6语法重构React代码

发布时间:2021-01-12 11:25 作者:jianzhan

摘要: 应用ES6英语的语法重新构建React编码详细说明 应用ES6英语的语法重新构建React部件先在,强烈推荐应用ES6英语的语法来撰写react部件。下边小结一下应用ES6 class英语的语法建立部件

使用ES6语法重构React代码详解       本篇文章主要介绍了使用ES6语法重构React代码详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

使用ES6语法重构React组件

在中,推荐使用ES6语法来编写react组件。下面总结一下使用ES6 class语法创建组件和以前使用React.createClass方法来创建组件的不同。

创建组件

ES6 class创建的组件语法更加简明,也更符合javascript。内部的方法不需要使用function关键字。

React.createClass

import React from 'react';
const MyComponent = React.createClass({
 render: function() {
 return (
 div 以前的方式创建的组件 /div 
export default MyComponent;

React.Component(ES6)

import React,{ Component } from 'react';
class MyComponent extends Component {
 render() {
 return (
 div ES6方式创建的组件 /div 
export default MyComponent;

pro凡科抠图 propTypes and getDefaultPro凡科抠图

1.使用React.Component创建组件,需要通过在constructor中调用super()将pro凡科抠图传递给React.Component。另外react 0.13之后pro凡科抠图必须是不可变的。

2.由于是用ES6 class语法创建组件,其内部只允许定义方法,而不能定义属性,class的属性只能定义在class之外。所以propTypes要写在组件外部。

3.对于之前的getDefaultPro凡科抠图方法,由于pro凡科抠图不可变,所以现在被定义为一个属性,和propTypes一样,要定义在class外部。

React.createClass

import React from 'react';
const MyComponent = React.createClass({
 propTypes: {
 nameProp: React.PropTypes.string
 getDefaultPro凡科抠图() {
 return {
 nameProp: ''
 render: function() {
 return (
 div 以前的方式创建的组件 /div 
export default MyComponent;

React.Component(ES6)

import React,{ Component } from 'react';
class MyComponent extends Component {
 constructor(pro凡科抠图) {
 super(pro凡科抠图);
 render() {
 return (
 div ES6方式创建的组件 /div 
MyComponent.propTypes = {
 nameProp: React.PropTypes.string
MyComponent.defaultPro凡科抠图 = {
 nameProp: ''
export default MyComponent;

State

使用ES6 class语法创建组件,初始化state的工作要在constructor中完成。不需要再调用getInitialState方法。这种语法更加的符合JavaScript语言习惯。

React.createClass

import React from 'react';
const MyComponent = React.createClass({
 getInitialState: function() {
 return { data: [] };
 render: function() {
 return (
 div 以前的方式创建的组件 /div 
export default MyComponent;

React.Component(ES6)

import React,{ Component } from 'react';
class MyComponent extends Component {
 constructor(pro凡科抠图) {
 super(pro凡科抠图);
 this.state = { data: [] };
 render() {
 return (
 div ES6方式创建的组件 /div 
export default MyComponent;

this

使用ES6 class语法创建组件, class中的方法不会自动将this绑定到实例中。必须使用 .bind(this)或者 箭头函数 = 来进行手动绑定。

React.createClass

import React from 'react';
const MyComponent = React.createClass({
 handleClick: function() {
 console.log(this);
 render: function() {
 return (
 div this.handleClick} 以前的方式创建的组件 /div 
export default MyComponent;

React.Component(ES6)

import React,{ Component } from 'react';
class MyComponent extends Component {
 handleClick() {
 console.log(this);
 render() {
 return (
 div this.handleClick.bind(this)} ES6方式创建的组件 /div 
export default MyComponent;

也可以将绑定方法写到constructor中:

import React,{ Component } from 'react';
class MyComponent extends Component {
 constructor(pro凡科抠图) {
 super(pro凡科抠图);
 this.handleClick = this.handleClick.bind(this);
 handleClick() {
 console.log(this);
 render() {
 return (
 div this.handleClick} ES6方式创建的组件 /div 
export default MyComponent;

或者使用箭头函数 = :

import React,{ Component } from 'react';
class MyComponent extends Component {
 handleClick = () = {
 console.log(this);
 render() {
 return (
 div this.handleClick} ES6方式创建的组件 /div 
export default MyComponent;

Mixins

使用ES6语法来创建组件是不支持React mixins的,如果一定要使用React mixins就只能使用React.createClass方法来创建组件了。

import React,{ Component } from 'react';
var SetIntervalMixin = {
 doSomething: function() {
 console.log('do somethis...');
const Contacts = React.createClass({
 mixins: [SetIntervalMixin],
 handleClick() {
 this.doSomething(); //使用mixin
 render() {
 return (
 div this.handleClick} /div 
export default Contacts;

总结

总的来说使用ES6来创建组件的语法更加简洁,这种语法避免了过多的React样板代码,而更多的使用纯javascript语法,更符合javascript语法习惯。React官方并没有强制性要求使用哪种语法,根据需要合理的选择即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持凡科。


  • 新零售微信小程序对后端

    原题目:新零售微信小程序对后端开发开发设计有哪些规定? 全新数据信息显示信息,肺炎疫情之中,很多线下推广实体线店面刚开始迁移到网上微信小程序刚开始做买卖,截止现阶段

  • 微信小程序团购价新鲜水

    模拟题目:手机微信微信小程序团购价价新鮮新鲜水果,的确很方便快捷吗?听听我的劝导! 让你被拉进过住房住宅小区拼团群吗?住宅小区团购价价作为一种全新升级升級的消費方法

  • 奥克斯的三十年:价钱战

    上架新世纪八十时代,二十五岁的浙江省省汽修工郑坚江一开始本身独立自主创业。他承包了频危破产倒闭的龙观数字时钟零件厂,自信心赌局一把。此后,这一生产加工厂先后进入仪

  • 凡科抠图巧用图层叠加和

    ps妙用涂层累加和ps滤镜迅速把角色相片变化成素描画实例教程 公布 创作者:大家的三老先生 我想评价本实例教程教脚本制作之家的ps相片解决学习培训者应用ps涂层累加和ps滤镜专

  • 到底什么是小程序?

    对于新产品类的出现,互联网普通百姓们一直由不得独立的兴奋,兴奋的同时大部分分分人持迟疑心理状态。2017年一月份手机微信微信小程序面世,到现如今早就快三年时间,早已亲自