顯示具有 ECMAScript 6 標籤的文章。 顯示所有文章
顯示具有 ECMAScript 6 標籤的文章。 顯示所有文章

2015年5月22日 星期五

React.js in es6

React.js 在 v0.13.0 版之後開始支援 ES6 的語法,如果想學習 ES6 語法的人可以看一下這些教學

對於最新 ES6 的 React.js 寫法,一個最基本的範例就是建立一個 Component

React Component


以往 ES5 我們會利用類似如下的寫法來建立一個 Component


首先在 ES5 我們會用 require 來引入你需要的模組,再來利用 React.createClass 建立一個 Component

最後透過 module.exports 來 export 一個 Component

至於要如何用 ES6 的語法建立一個 React 的 Component 呢? 如下:

我們可以看到原本的 require 換成了 import {} from "" module.exports 換成了 export default

最重要的是,利用了 ES6 定義的 class 來達到基本的 prototype-based 的 object oriented pattern

所以在 ES6 語法中我們就可以把一個 React 的 Component 透過 class 的定義並繼承 React.Component 來建立一個 Component 的類別

當然大多數 React 所定義的方法都沒有變動,包括 render, componentWillMount, componentDidMount...等等

2015年4月19日 星期日

React.js - using Jest and Babel to test ES6 code

本偏介紹一下如果你是用 ES6 的語法寫的 React.js 應用程式,如果利用 Jest 測試時要住意那些部份

原則上測試的過程不外乎 Jest 官網介紹的 >>here<<

如果你是用 ES6 語法進行開發的話,你需要注意的是利用 react-tools 作 transform 時需要指定你的 JS 語法是 ES6

設定方式就是透過 preprocessor.js 讓 react-tools 在 transform 的時候可以將 ES6 語法 enabled 起來

根據 react-tools 的官方介紹,如同上述的方式加入 harmony 並指定為 true 就可以了

此外我再額外介紹一種方式就是利用 babel 來進行 transform 的動作

babel 本身就可以對 ES6 的語法以及 JSX 的進行轉換,所以你也不用擔心 babel 不認得 React.js

透過 npm install babel --save-dev 安裝 babel 之後

修改你的 preprocessor.js,如下所示:


2015年3月25日 星期三

React.js - a flux example with ES6 and Babel

這篇介紹一下用最新的 ECMAScript 6 的語法並搭配 Babel 來開發一個簡單的 react/flux 的程式

同樣這次的範例程式會放在 GitHub 上 >>在這裡<<

不知道 react/flux 的可以看我>>上一篇的教學<< 有寫一個簡單的 react/flux app

對 flux 有疑問或不清楚的可以 google 找一下資料,而我之前也有寫一篇對 flux 的>>心得分享<<

接下來回到主題,ECMAScript 6 以下都會簡稱 ES6,在2014確定了所有的新功能與語法

預定在今年 2015 6月左右會正式發佈,接下來瀏覽器會慢慢完全支援 ES6 的語法

所以這篇就用 ES6 來重寫一次 react/flux 的程式

雖然目前瀏覽器並沒有完全支援 ES6 的語法,不過我們可以透過 Babel 這個工具進行轉換

Babel 的原名叫做 6to5,也就是一個能夠將 ES6 轉換為 ES5 的工具,所以也不用擔心瀏覽器對 es6 的相容性問題了

至於為什麼要這麼快用 ES6 來開發程式?如果看過 ES6 的新功能之後,確實是蠻讓人期待的,之後有空再來介紹

另外也是因為有了 Babel 這類的工具,讓目前尚未完全支援 ES6 的情況下

可以開始專攻 ES6,等到之後 ES6 完全被瀏覽器支援後,你也不用考慮要重新寫程式了,因為你已經是在寫 ES6了