React 基本概念1
基礎
打開如下網址 http://codepen.io/gaearon/pen/ZpvBNJ
試著把script的內容改為
var HelloMessage = React.createClass({
render: function() {
return <div>Hello {this.props.name}</div>;
}
});
ReactDOM.render(<HelloMessage name="hihi" />, document.getElementById('root'));也可以試著把script的內容改為(使用ES6)
class HelloMessage extends React.Component {
render() {
return <div>Hello {this.props.name}</div>;
}
}
ReactDOM.render(<HelloMessage name="apple"/>, document.getElementById('root'));基本React 元件構造
import React,{Component} from 'react';
class BaseComponent extends Component{
constructor(props){
super(props);
}
}
export default BaseComponent2.HTML與JSX
http://magic.reactjs.net/htmltojsx.htm
以前我們將HTML和JS分開寫,但React將頁面的畫面和邏輯全寫在JS內,而這個JS名稱為JSX,下面為JSX和HTML的簡單轉換對照圖
HTML
style改為物件的寫法
class改為className
React的component名字字母須大寫(與一般HTML tag區別)
function直接寫
functionName() { }即可
3.Component內傳遞data方式
一個component指的是一個class,下面為最基本的ES6 React component構造
而傳遞方式在我們使用Redux等框架前,主要使用state和prop傳遞
Props 主要為父元件傳遞下來的屬性
state為在一個component中容易被改變的data
簡單來說,props通常主要是用來父子間傳遞data用,而state是來記錄data目前的數值的,例如像server request後將data先存到state再改變畫面
props範例
一個名為 Comment 的component
在父component呼叫
試著把剛才codepen改為如下
而最後會產生如下
State範例
接著把codepen改為
將產生如下
你可能會看過getInitialState但在ES6可直接寫為
即可
而設定state可用setState()
把codepen改為如下,點擊按鈕改變state
下面介紹React.js兩個常用的生命週期方法
1.componentDidMount方法,用途為在元件載入到頁面後所要執行的函式,類似於jquery中的$(document).ready()方法
2.componentWillMount方法,會在元件渲染到頁面前執行
其他生命週期方法還包含
PropTypes
功能:用來檢查型別
貼上下面程式碼,然後開啟console,之後把title="123" 刪除
Refs
功能:用來取得DOM並且進行操作
Last updated
Was this helpful?