Skip to content

Commit

Permalink
fix babel-standalone
Browse files Browse the repository at this point in the history
  • Loading branch information
kdchang committed Nov 17, 2016
1 parent f1103ae commit 71b09c6
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 15 deletions.
4 changes: 2 additions & 2 deletions Ch02/webpack-dev-enviroment.md
Expand Up @@ -22,7 +22,7 @@
以下是 React [官方首頁的範例](https://facebook.github.io/react/index.html),以下使用 `React v15.2.1`

1. 理解 `React``Component` 導向的應用程式設計
2. 引入 `react.js``react-dom.js`(react 0.14 後將 react-dom 從 react 核心分離,更符合 react 跨平台抽象化的定位)以及 `babel-core-browser` 版 script(可以想成 `babel` 是翻譯機,翻譯瀏覽器看不懂的 `JSX``ES6+` 語法成為瀏覽器看的懂得的 `JavaScript`。為了提昇效率,通常我們都會在伺服器端做轉譯,這點在 production 環境尤為重要)
2. 引入 `react.js``react-dom.js`(react 0.14 後將 react-dom 從 react 核心分離,更符合 react 跨平台抽象化的定位)以及 `babel-standalone` 版 script(可以想成 `babel` 是翻譯機,翻譯瀏覽器看不懂的 `JSX``ES6+` 語法成為瀏覽器看的懂得的 `JavaScript`。為了提昇效率,通常我們都會在伺服器端做轉譯,這點在 production 環境尤為重要)
3.`<body>` 撰寫 React Component 要插入(mount)指定節點的地方:`<div id="example"></div>`
4. 透過 `babel` 進行語言翻譯 `React JSX` 語法,`babel` 會將其轉為瀏覽器看的懂得 `JavaScript`。其代表意義是:`ReactDOM.render(欲 render 的 Component 或 HTML 元素, 欲插入的位置)`。所以我們可以在瀏覽器上打開我們的 `hello.html`,就可以看到 `Hello, world!` 。That's it,我們第一個 `React` 應用程式就算完成了!

Expand All @@ -35,7 +35,7 @@
<!-- 以下引入 react.js, react-dom.js(react 0.14 後將 react-dom 從 react 核心分離,更符合 react 跨平台抽象化的定位)以及 babel-core browser 版 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.2.1/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.2.1/react-dom.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.34/browser.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.18.1/babel.min.js"></script>
</head>
<body>
<!-- 這邊的 id="example" 的 <div> 為 React Component 要插入的地方 -->
Expand Down
25 changes: 13 additions & 12 deletions Ch04/props-state-introduction.md
Expand Up @@ -201,16 +201,16 @@ class TodoApp extends React.Component {
this.setState({items: nextItems, text: nextText});
}
render() {
return (
<div>
<h3>TODO</h3>
<TodoList items={this.state.items} />
<form onSubmit={this.handleSubmit}>
<input onChange={this.onChange} value={this.state.text} />
<button>{'Add #' + (this.state.items.length + 1)}</button>
</form>
</div>
);
return (
<div>
<h3>TODO</h3>
<TodoList items={this.state.items} />
<form onSubmit={this.handleSubmit}>
<input onChange={this.onChange} value={this.state.text} />
<button>{'Add #' + (this.state.items.length + 1)}</button>
</form>
</div>
);
}
}

Expand All @@ -222,7 +222,7 @@ ReactDOM.render(<TodoApp />, document.getElementById('app'));
## Refs 與表單處理
上面介紹了 props(傳入後就不能修改)、state(隨著使用者互動而改變)和事件處理機制後,我們將接續介紹如何在 React 中進行表單處理。同樣我們使用 React 官網範例 A Component Using External Plugins 進行介紹。由於 React 可以容易整合外部的 libraries(例如:jQuery),本範例將使用 `remarkable` 結合 `ref` 屬性取出 DOM Value 值(另外比較常用的作法是使用 `onChange` 事件處理方式處理表單內容),讓使用者可以使用 Markdown 語法的所見即所得編輯器(editor)。

HTML Markup(記得除了引入 `react` `react-dom` 外還要用 `CDN` 方式引入 `remarkable` 這個 `Markdown` 語法 parser 套件):
HTML Markup(除了引入 `react` `react-dom` 還要用 `CDN` 方式引入 `remarkable` 這個 `Markdown` 語法 parser 套件,記得如果沒有使用 Webpack 或是 browserify + babelify 等工具需要引入 `babel-standalone` 瀏覽器解析 ES6 語法並於引入 script 加上 type="text/babel"):

```html
<!DOCTYPE html>
Expand All @@ -235,9 +235,10 @@ HTML Markup(記得除了引入 `react` 和 `react-dom` 外還要用 `CDN` 方
<body>
<script src="https://fb.me/react-15.1.0.js"></script>
<script src="https://fb.me/react-dom-15.1.0.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.18.1/babel.min.js"></script>
<script src="https://cdn.jsdelivr.net/remarkable/1.6.2/remarkable.min.js"></script>
<div id="app"></div>
<script src="./app.js"></script>
<script type="text/babel" src="./app.js"></script>
</body>
</html>
```
Expand Down
2 changes: 1 addition & 1 deletion Ch05/react-router-example/src/components/Repos/Repos.js
Expand Up @@ -8,7 +8,7 @@ const Repos = (props) => (
);

Repos.propTypes = {
params: React.PropTypes.object,
params: React.PropTypes.Object,
};

export default Repos;

0 comments on commit 71b09c6

Please sign in to comment.