react native 中es6語法解析

發表於2015-12-08

react native是直接使用es6來編寫程式碼,許多新語法能提高我們的工作效率

解構賦值

這句程式碼是ES6 中新增的解構(Destructuring)賦值語句。准許你獲取物件的多個屬性並且使用一條語句將它們賦給多個變數。

上面的程式碼等價於:

再看幾個例子,以前,為變數賦值,只能直接指定值:

而ES6 允許這樣寫:

更詳細的內容可參看:變數的解構賦值

箭頭函式

React Native 裡面經常會出現類似的程式碼:

ES6中新增的箭頭操作符=> 簡化了函式的書寫。操作符左邊為輸入的引數,而右邊則是進行的操作以及返回的值Inputs=>outputs

舉幾個栗子感受下:

更多詳細內容請自行Google,或檢視:https://www.imququ.com/post/arrow-function-in-es6.html

延展操作符(Spread operator)

這個 … 操作符(也被叫做延展操作符 - spread operator)已經被 ES6 陣列 支援。它允許傳遞陣列或者類陣列直接做為函式的引數而不用通過apply。

而在React中,延展操作符一般用於屬性的批量賦值上。在JSX中,可以使用…運算子,表示將一個物件的鍵值對與ReactElement的props屬性合併。

它也可以和普通的XML屬性混合使用,需要同名屬性,後者將覆蓋前者:

class

ES6中新增了對類的支援,引入了class關鍵字(其實class在JavaScript中一直是保留字,目的就是考慮到可能在以後的新版本中會用到,現在終於派上用場了)。JS本身就是物件導向的,ES6中提供的類實際上只是JS原型模式的包裝。現在提供原生的class支援後,物件的建立,繼承更加直觀了,並且父類方法的呼叫,例項化,靜態方法和建構函式等概念都更加形象化。

方法定義(method definition)

ECMAScript 6中,引入了一種名叫方法定義(method definition)的新語法糖,相對於以前的完整寫法,這種簡寫形式可以讓你少寫一個function鍵字.

最後,推薦一個ES6的PPT,寫得不錯:http://khan4019.github.io/ES6/

相關文章