Heim  >  Artikel  >  Web-Frontend  >  Ist „react.js“ in es6 geschrieben?

Ist „react.js“ in es6 geschrieben?

青灯夜游
青灯夜游Original
2022-10-20 18:24:021378Durchsuche

react.js ist in es6 geschrieben und kann mit Babel in JavaScript JSX übersetzt werden. Da die Designidee von React äußerst einzigartig ist, ist es eine revolutionäre Innovation und bietet eine hervorragende Leistung Die Codelogik ist sehr einfach. Die Syntax zum Erstellen von Komponenten mit ES6 ist prägnanter. Diese Syntax vermeidet zu viel React-Boilerplate-Code und verwendet eine reinere JavaScript-Syntax, die eher den JavaScript-Syntaxgewohnheiten entspricht.

Ist „react.js“ in es6 geschrieben?

Die Betriebsumgebung dieses Tutorials: Windows7-System, ECMAScript 6&&react17-Version, Dell G3-Computer.

ReactJS ist die beliebteste Front-End-Bibliothek zum Erstellen von Ansichten. ReactJS ist in ES6 geschrieben und kann mit Babel oder JSX von JavaScript in ES5 übersetzt werden. Da die Designidee von React äußerst einzigartig ist, handelt es sich um eine revolutionäre Innovation, eine hervorragende Leistung und eine sehr einfache Codelogik. Daher beginnen immer mehr Menschen, darauf zu achten und es zu nutzen, und es könnte in Zukunft das Mainstream-Tool für die Webentwicklung sein.

Vergleich von React mit ES6- und ES5-Schreibmethoden

Erstellen von Komponenten

Die Syntax der von der ES6-Klasse erstellten Komponenten ist prägnanter und konsistenter mit Javascript. Interne Methoden müssen das Funktionsschlüsselwort nicht verwenden.

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 &#39;react&#39;;

class MyComponent extends Component {
  render() {
    return (
      <div>ES6方式创建的组件</div>
    );
  }
}

export default MyComponent;

props propTypes und getDefaultProps

  • Um eine Komponente mit React.Component zu erstellen, müssen Sie props an React.Component übergeben, indem Sie super() aufrufen im Konstruktor. Darüber hinaus müssen Requisiten nach React 0.13 unveränderlich sein.

  • Da die Komponente mit der ES6-Klassensyntax erstellt wird, dürfen nur Methoden intern definiert werden, nicht jedoch Attribute. Klassenattribute können nur außerhalb der Klasse definiert werden. Daher sollten propTypes außerhalb der Komponente geschrieben werden.

  • Da Requisiten unveränderlich sind, ist sie jetzt wie propTypes als Eigenschaft definiert und muss außerhalb der Klasse definiert werden.

React.createClass

import React from &#39;react&#39;;

const MyComponent = React.createClass({
  propTypes: {
    nameProp: React.PropTypes.string
  },
  getDefaultProps() {
    return {
      nameProp: &#39;&#39;
    };
  },
  render: function() {
    return (
      <div>以前的方式创建的组件</div>
    );
  }
});

export default MyComponent;

React.Component(ES6)

import React,{ Component } from &#39;react&#39;;

class MyComponent extends Component {
  constructor(props) {
    super(props);
  }

  render() {
    return (
      <div>ES6方式创建的组件</div>
    );
  }
}

MyComponent.propTypes = {
  nameProp: React.PropTypes.string
};
MyComponent.defaultProps = {
  nameProp: &#39;&#39;
};

export default MyComponent;

State

Verwenden Sie die ES6-Klassensyntax, um Komponenten zu erstellen, und die Arbeit der Statusinitialisierung muss im Konstruktor abgeschlossen werden. Es ist nicht erforderlich, die Methode getInitialState erneut aufzurufen. Diese Syntax entspricht eher den Sprachgewohnheiten von JavaScript.

React.createClass

import React from &#39;react&#39;;const MyComponent = React.createClass({
  getInitialState: function() {
    return { data: [] };
  },

  render: function() {
    return (
      <div>以前的方式创建的组件</div>
    );
  }});export default MyComponent;

React.Component(ES6)

import React,{ Component } from &#39;react&#39;;class MyComponent extends Component {
  constructor(props) {
    super(props);
    this.state = { data: [] };
  }

  render() {
    return (
      <div>ES6方式创建的组件</div>
    );
  }}export default MyComponent;

this

Verwenden Sie die ES6-Klassensyntax, um Komponenten zu erstellen. Für die manuelle Bindung müssen Sie .bind(this) oder die Pfeilfunktion => verwenden.

React.createClass

import React from &#39;react&#39;;

const MyComponent = React.createClass({
  handleClick: function() {
    console.log(this);
  },
  render: function() {
    return (
      <div onClick={this.handleClick}>以前的方式创建的组件</div>
    );
  }
});

export default MyComponent;

React.Component (ES6)

import React,{ Component } from &#39;react&#39;;

class MyComponent extends Component {
  handleClick() {
    console.log(this);
  }

  render() {
    return (
      <div onClick={this.handleClick.bind(this)}>ES6方式创建的组件</div>
    );
  }
}

export default MyComponent;

Sie können die Bindungsmethode auch in den Konstruktor schreiben:

import React,{ Component } from &#39;react&#39;;

class MyComponent extends Component {
  constructor(props) {
    super(props);
    this.handleClick = this.handleClick.bind(this);
  }

  handleClick() {
    console.log(this);
  }

  render() {
    return (
      <div onClick={this.handleClick}>ES6方式创建的组件</div>
    );
  }
}

export default MyComponent;

oder Pfeilfunktionen verwenden =>:

mport React,{ Component } from &#39;react&#39;;

class MyComponent extends Component {
  handleClick = () => {
    console.log(this);
  }

  render() {
    return (
      <div onClick={this.handleClick}>ES6方式创建的组件</div>
    );
  }
}

export default MyComponent;

Mixins

Verwenden Sie ES6 Steuer zu schaffen Komponenten unterstützen keine React-Mixins. Wenn Sie React-Mixins verwenden müssen, können Sie zum Erstellen von Komponenten nur die Methode React.createClass verwenden.

import React,{ Component } from &#39;react&#39;;

var SetIntervalMixin = {
  doSomething: function() {
    console.log(&#39;do somethis...&#39;);
  },
};
const Contacts = React.createClass({
  mixins: [SetIntervalMixin],

  handleClick() {
    this.doSomething(); //使用mixin
  },
  render() {
    return (
      <div onClick={this.handleClick}></div>
    );
  }
});

export default Contacts;

Zusammenfassung

Im Allgemeinen ist die Syntax zum Erstellen von Komponenten mit ES6 prägnanter. Diese Syntax vermeidet zu viel React-Boilerplate-Code und verwendet eine reinere Javascript-Syntax, die eher den Javascript-Syntaxgewohnheiten entspricht. React schreibt offiziell nicht vor, welche Syntax verwendet werden soll. Sie können eine angemessene Syntax entsprechend Ihren Anforderungen auswählen.

【Verwandte Empfehlungen: Javascript-Video-Tutorial, Programmiervideo

Das obige ist der detaillierte Inhalt vonIst „react.js“ in es6 geschrieben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn