検索
React と es6 とは何ですかOct 26, 2022 pm 05:29 PM
reactjavascriptes6

react は、ユーザー インターフェイスを構築するために Facebook によって発表された、宣言的で効率的かつ柔軟な JavaScript 開発フレームワークであり、サブコンポーネントが外部コンポーネントに直接影響を与えないモデルをプログラマーに提供します。最新の単一ページ アプリケーションにおけるコンポーネント間の明確な分離。 es6 は JavaScript の次期バージョン標準であり、その目標は、JavaScript 言語を複雑な大規模アプリケーションの作成に使用できるようにし、エンタープライズ レベルの開発言語にすることです。

React と es6 とは何ですか

このチュートリアルの動作環境: Windows7 システム、ECMAScript 6&&react18 バージョン、Dell G3 コンピューター。

react とは


react.js は、Facebook がユーザー インターフェイスを構築するために立ち上げた JavaScript 開発フレームワークです。

React は、ユーザー インターフェイスを構築するための宣言的で効率的かつ柔軟な JavaScript ライブラリです。 React を使用すると、短い独立したコード スニペットを組み合わせて複雑な UI インターフェイスを作成できます。これらのコード スニペットは「コンポーネント」と呼ばれます。

React の設計思想は非常にユニークであるため、革命的なイノベーションであり、優れたパフォーマンスを備えており、コード ロジックは非常にシンプルです。そのため、将来の Web 開発の主流のツールになるのではないかと考え、注目し、使用する人が増えています。

React と es6 とは何ですか

#React は、HTML にレンダリングされたデータのビューを提供するオープン ソースの JavaScript ライブラリです。 React ビューは通常、カスタム HTML タグで指定された他のコンポーネントを含むコンポーネントを使用してレンダリングされます。 React は、子コンポーネントが外部コンポーネントに直接影響を与えないモデル、データ変更時の HTML ドキュメントの効率的な更新、最新のシングルページ アプリケーションにおけるコンポーネント間の明確な分離をプログラマーに提供します。

React の利点は次のとおりです:

  • 大規模なアプリケーションにより適しており、テスト容易性が優れています

  • Web とモバイル ネイティブ APP がすべてを引き受けます

  • 大規模なエコシステム、より多くのサポート、使いやすいツール

  • 中規模および大規模企業に適していますプロジェクト

es6 とは


es6 の正式名は ECMAScript6 (ECMAScript の 6 番目のバージョン) で、2015 年にリリースされました。 2015 年 6 月に正式にリリースされた JavaScript 言語標準は、正式には ECMAScript 2015 (ES2015) と呼ばれます。

ECMAScript 6 は基本的に業界標準になっており、その人気は ES5 よりもはるかに速いです。主な理由は、最新のブラウザ、特に Chrome ブラウザと Firefox ブラウザがすでにほとんどの機能をサポートしているため、非常に早く ES6 をサポートしているためです。 ES6では。

それ以来、ECMA Script は重要な機能を追加するメジャー バージョン (ES6 と呼ばれます) を毎年リリースしてきました。

React と es6 とは何ですか

ES と JS の関係を理解する

ES = ECMAScript は動的スクリプト言語の「標準」、JS = JavaScript ES の標準、デフォルト、および主流の「実装」です。商標権の問題により、欧州コンピュータ協会によって策定された言語標準は JS と呼ぶことはできず、ES とのみ呼ぶことができます。

の目的新しい ES6 標準は次のとおりです。JS は大規模な Web アプリケーションの開発に使用でき、エンタープライズ レベルの開発言語になります。エンタープライズ レベルの開発言語は、モジュール開発に適しており、依存関係の管理が優れています。

ES6 を学ぶ必要がある理由は何ですか? ES6 は何に使用されますか?

ES5 は、フロントエンドが複雑化、巨大化する現状に対応できず、時代遅れとも言えますが、ES6 は ES5 を強化し、アップグレードしたものです。

1. 主流のブラウザは ES6 を完全にサポートしています

2. 業界の新しいフロントエンド フレームワークは ES6 構文を完全に使用しています

3. WeChat アプレット、ユニアプリ、 etc are all based on ES6 syntax

4. 採用から始めて、中小企業、フルスタック、履歴書にもう 1 つのスキル、試用期間も早く始めることができます。

変数

  • let
    スコープ内で宣言できる let 変数は 1 つだけです。子 let 変数がスコープ内でも宣言されている場合、親スコープ内の let 変数には影響しません。
  • var
    1 つのスコープ内で複数の var 変数を宣言できます。子スコープでも var 変数を宣言すると、親スコープの var 変数にも影響します。
  • const
    定数 (final と同等) は変更できません。
  • global
    変数の型を宣言していない変数は、デフォルトでグローバル変数 (ウィンドウ属性) になります。

#オブジェクト指向

  • 原則
    JavaScript のオブジェクト指向機能はプロトタイプとコンストラクターに基づいており、クラスに基づく一般的な機能とは異なります。 JavaScript はオブジェクト継承の言語レベルの機能を提供しませんが、プロトタイプのコピーを通じて提供します。
  • オブジェクトを作成する 3 つの方法
  1. {pojo}(实例变量、实例方法、get、set) 
  2. function(实例变量、实例方法、prototype、apply、call) 
  3. class(实例变量、实例方法、prototype、extends、super)

プロトタイプ

関数とクラスのみプロトタイプのみが存在し、その意義はインスタンス変数やインスタンスメソッドを動的に追加し、継承を実装することにあります。

#継承

    ##call/apply
  • 継承関係では、サブクラスが親に適用されます。このキーワードは、クラス
    #extends
  • でパラメータを渡すときに使用する必要があります。継承関係で使用されます。A は B を拡張し、A は B# の親クラスになります。 ##super
  • サブクラスで親クラスを呼び出すメソッドはキーワードを使用します。
  • ## ES5 継承メソッド
  • # Next (プロトタイプ継承) コンストラクター継承 (継承されたプロパティ))。この方法により、プロトタイプチェーン継承で多重継承が実装できない、サブクラスのインスタンス作成時に親クラスのコンストラクターにパラメータを渡せない、コンストラクターでプロトタイプのプロパティ/メソッドを継承できないというデメリットを回避できます。継承。
  • function Person(name,age){                                             /* 父类 */
        this.name = name || 'father';                            //实例变量
        this.namesonF = this.nameson;
        this.age = age;
        this.talk = function(){alert("talk");};                 //实例方法
    };
    function Son(name){                                                     /* 子类 */
        this.nameson = name || 'son';
        // Person.call(this,'name',18);                          //继承:构造继承,复制父类的实例属性给子类,不能继承原型属性/方法
        Person.apply(this,['name',18]);                          //继承:构造继承,复制父类的实例属性给子类,不能继承原型属性/方法
    }
    // Son.prototype = new Person("zhangsan",19);                   //继承:原型链继承,父类的实例作为子类的原型,拷贝属性两次,不合理
    Son.prototype = Person.prototype;                            //继承:原型链继承,父类的实例作为子类的原型
    
    Person.prototype.publicParam="param1";                       //动态添加实例变量
    Person.prototype.talk=function(){alert("talk");}            //动态添加实例方法
    
    var son = new Son();                                         //实例化对象,调用构造函数(constructor)

  • ES6 継承メソッド
    ES6 継承は、Java、Scala、その他の言語に非常によく似た新しい記述方法を作成し、結合された継承を使用します。デフォルトでは (プロトタイプチェーンの継承 (プロトタイプの継承) コンストラクトの継承 (プロパティの継承))。
  • class Point {
        constructor(x, y) {
            this.x = x;                                           //实例变量
            this.y = y;
        }
    }
    class Son extends Point {
        constructor(z, w) {
            super(z,w);
            this.z = z;                                           //实例变量
            this.w = w;
        }
    }
    var son = new Son(1,2);

  • アロー関数

アロー関数は ES6 で追加された新しい構文で、Java のラムダやスカラの関数式に似ています。構文は非常によく似ています

#code

    var single = a => console.log(a);
    var single = (a) => (console.log(a));
    var single = (a, b) => {console.log(a + b)};
    var single = (a, b) => {return a + b};
  • #template string

テンプレート文字列、文字列連結の新しい構文コード

var templateStr = () => {
    var str1 = "adsf\nsdfa";

    var template1 = `<ul><li>first</li> <li>second</li></ul>`;

    var x = 1;
    var y = 2;
    var template2 = `${x} + ${y} = ${x + y}`;

    var template3 = `${lettest4()}`;
    console.log(str1)
    console.log(template1)
    console.log(template2)
    console.log(template3)
}
  • 構造解除
# 再構築/分解、変数相互作用の構文

コード

var destructuring = () => {
    var [a,b,...c]=[1,2,3,4,5,6,7,8,9,10];
    let [temp="replaceString"] = ["tempString"];
    let [age2, [{name: fname},{age: fname2="replaceString"}]] = [20, [{name: &#39;qc&#39;},{}]];
    const [aa,bb,cc,dd,ee,ff]="hello";

    let {name="replaceName",age,id}={name:&#39;cursor&#39;,age:19,id:&#39;vc6dfuoc91vpdfoi87s&#39;};
    let {type:tipType,min:minNumber}={type:&#39;message&#39;,min:20};
    let {sin,cos,tan,log}=Math;

    var fun = function({x,y}={}){return [x,y];}
    fun({x:100,y:2});

    [a,b]=[b,a];                                        //交换

    var map = [1,2,3]
    var map=new Map();
    map.set("id","007");
    map.set("name","cursor");
    for(let [key,value] of map){}
    for(let [key] of map){}
    for(let [,value] of map){}

    var arr = [1,2,3,4]
    for(let val of arr){val}

}

  • 引数
実際のパラメータ、パラメータを直接読み取るために ES6 に追加された変数

##コード

function argumentsTest(a,b) { 
	for(let val of arguments)
		{console.log(val)
	}
}

[関連する推奨事項 :

JavaScript ビデオ チュートリアル
  • プログラミング ビデオ ]

以上がReact と es6 とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
react中canvas的用法是什么react中canvas的用法是什么Apr 27, 2022 pm 03:12 PM

在react中,canvas用于绘制各种图表、动画等;可以利用“react-konva”插件使用canvas,该插件是一个canvas第三方库,用于使用React操作canvas绘制复杂的画布图形,并提供了元素的事件机制和拖放操作的支持。

React是双向数据流吗React是双向数据流吗Apr 21, 2022 am 11:18 AM

React不是双向数据流,而是单向数据流。单向数据流是指数据在某个节点被改动后,只会影响一个方向上的其他节点;React中的表现就是数据主要通过props从父节点传递到子节点,若父级的某个props改变了,React会重渲染所有子节点。

react中antd和dva是什么意思react中antd和dva是什么意思Apr 21, 2022 pm 03:25 PM

在react中,antd是基于Ant Design的React UI组件库,主要用于研发企业级中后台产品;dva是一个基于redux和“redux-saga”的数据流方案,内置了“react-router”和fetch,可理解为应用框架。

react中为什么使用nodereact中为什么使用nodeApr 21, 2022 am 10:34 AM

因为在react中需要利用到webpack,而webpack依赖nodejs;webpack是一个模块打包机,在执行打包压缩的时候是依赖nodejs的,没有nodejs就不能使用webpack,所以react需要使用nodejs。

react是组件化开发吗react是组件化开发吗Apr 22, 2022 am 10:44 AM

react是组件化开发;组件化是React的核心思想,可以开发出一个个独立可复用的小组件来构造应用,任何的应用都会被抽象成一颗组件树,组件化开发也就是将一个页面拆分成一个个小的功能模块,每个功能完成自己这部分独立功能。

react和reactdom有什么区别react和reactdom有什么区别Apr 27, 2022 am 10:26 AM

react和reactdom的区别是:ReactDom只做和浏览器或DOM相关的操作,例如“ReactDOM.findDOMNode()”操作;而react负责除浏览器和DOM以外的相关操作,ReactDom是React的一部分。

react中forceupdate的用法是什么react中forceupdate的用法是什么Apr 19, 2022 pm 12:03 PM

在react中,forceupdate()用于强制使组件跳过shouldComponentUpdate(),直接调用render(),可以触发组件的正常生命周期方法,语法为“component.forceUpdate(callback)”。

react有没有双向绑定react有没有双向绑定Apr 21, 2022 am 10:24 AM

react中没有双向绑定;react的设计思想就是单向数据流,没有双向绑定的概念;react是view层,单项数据流只能由父组件通过props将数据传递给子组件,满足了view层渲染的要求并且更易测试与控制,所以在react中没有双向绑定。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン