React.js開發入門教學(4)-JSX寫法
在React中,其實可以用JSX來寫,那JSX是什麼東西呢?似乎是一種JavaScript與XML的一種
結合,所以你寫出來瀏覽器是看不懂的啦~哈哈哈哈哈哈………..所以他還是得被轉換一次
才能夠用,既然這樣位什麼還要用JSX呢?據說是可以淺顯易懂,而且寫起來也比較漂亮的樣子?
我也不太清楚,所以我一邊作一邊學吧~大部分的React.js都是用JSX在寫,所以要說不想學
好像也不行。所以還是來學學JSX在寫些什麼…
我看了一個範例是這樣的。
ReactDOM.render(
<h1>Hello JSX</h1>,
document.getElementById('test')
);
執行….!動不了,在 jsfiddle.net 上,如果要執行JSX必須將 JavaScript換成BABEL才行!
換法是點一下右上角的 JavaScript 後語言選擇 BABEL 就可以了!選完後在執行馬上就能看到我們
的結果了!好像真的很直覺!因為我們都會寫HTML了嘛~~~
馬上又來跟之前一樣換換背景顏色吧!在JSX當中是可以這樣寫的
var css = {backgroundColor: 'black', color: '#FFFFFF'};
ReactDOM.render(
<h1 style={css}>Hello JSX</h1>,
document.getElementById('test')
);
再來挑戰一下傳值的寫法看看 A__A
var css = {backgroundColor: 'black', color: '#FFFFFF'};
var name = {name: 'Leo'}
var helloworld = React.createClass({
render: function() { //這裡要特別注意傳入的變數要用大括弧包起來喔
return <h1 style={css}>Hello {this.props.name}</h1>
}
});
ReactDOM.render(
React.createElement(helloworld, name),
document.getElementById('test')
);
基本上寫法大同小異,只是在HTML的部份寫法與原本 JavaScript 不同,記得使用大括弧把變數給包起來才行!
最後在寫一下上一篇學到的取得輸入值吧!
var form = React.createClass({
getInitialState: function() {
return {
val: ''
};
},
showVal: function(e) {
this.setState({
val: document.getElementById('input_a').value
});
},
render: function() {
return (
<div>
<input type="text" id="input_a" />
<input type="button" value="送出" onClick={this.showVal}/>
<h1>{this.state.val}</h1>
</div>
);
}
});
ReactDOM.render(
React.createElement(form),
document.getElementById('test')
);
到這邊我們應該已經大致上了解JSX的基本寫法了吧!感覺上就是用JavaScript把HTML包起來但是HTML中又包了JavaScript
的感覺XDDDD
好了,睏了,今天到此為止:P