<script src="js/react.js"></script> <script src="js/browser.min.js"></script> <script src="js/react-dom.js"></script>
這裏須要注意的是這三個文件必須首先加載!而且react.j文件要放在最前面進行導入! react.js是react.js的核心庫。 react-dom.js提供與DOM相關的功能。而 browser.js是將JSX語法轉化爲JAVASCRIPT語法。javascript
2、模板語法以後建立script標籤,咱們的核心JSX語法就寫在標籤內部:css
這裏須要注意的地方是:<script> 標籤的 type 屬性爲 text/babel 。凡是使用 JSX 的地方,都要加上 type="text/babel" 。html
tips: 在react 0.14前,瀏覽器端實現對jsx的編譯依賴jsxtransformer.js 在react 0.14後,這個依賴的庫改成browser.js。 頁面script標籤的type也由text/jsx改成text/babel。前端
接下來咱們寫一個簡單的小案例,利用React.js打印輸出語句,代碼以下:vue
<script type="text/babel"> /*1、基本結構: ReactDOM.render() 是react中的最基本的方法,做用是將模板轉爲HTML語言,並將其插入到DOM節點中。 */ ReactDOM.render(//render:渲染的意思 <h1>你好,React!</h1>, //必須使用JavaScript原生的getElementByID方法,不能使用jQuery來選取DOM節點; document.getElementById("example1") )
</script>
使用上面語句就能夠打印輸出語句「你好,React!」,這就實現了簡單的案例。java
接下來咱們介紹一下,React.js中的CSS樣式書寫方式,與原生分離式寫法有很大不一樣:react
① React 推薦使用內聯樣式!(使用小駝峯法則)
② React 會在指定元素數字後自動添加 px 。webpack
<script type="text/babel"> var myStyle ={ //傳入一個樣式數組 fontSize: 100, color: 'red' }; var testStyle ={ width:800, heigth:500, backgroundColor:"yellow" }; ReactDOM.render( <div style = {testStyle}> <h1 style = {myStyle}>這段文字使用了內聯樣式</h1> </div>, document.getElementById('example') ) </script>
顯示效果以下:web
接下來咱們在模板插入 JavaScript 變量,以數組爲例,看一下會是什麼效果?編程
<script type="text/babel"> var arr = [ <h1 key="1">這是數組元素1</h1>, <h2 key="2">這是數組元素2</h2>, <h3 key="3">這是數組元素3</h3>, ]; ReactDOM.render( <div>{arr}</div>, document.getElementById("example") ) </script>
代碼的運行結果以下:
以上咱們能夠看到JSX 容許直接在模板插入 JavaScript 變量。若是這個變量是一個數組,則會展開這個數組的全部成員。
1、什麼是組件?
組件化思想在React.js中很重要,eact 容許將代碼封裝成組件,而後像插入普通 HTML標籤同樣,在網頁中插入這個組件。
2、組件的建立以及輸出
建立:
var HelloMessage = React.createClass({ render:function (){ return } }) 輸出:使用僞標籤 實例化組件類並輸出信息 <HelloMessage />
下面咱們建立一個組件來實現一個簡單的功能:
<script type="text/babel"> var HelloMessage = React.createClass({ render: function() { return <h1>這是一個自定義組件---{this.props.name}---{this.props.age}</h1> // <p>這是個測試標籤</p>; } });
//輸出組件 ReactDOM.render(
<HelloMessage name = "這是組件的name屬性!" age = "這是組件的age屬性!"/>,
//在調用組件的時候,若是想要屢次調用組件,也須要給組件設置一個根標籤
<div>
<HelloMessage name="這是組件的name屬性!" />
<HelloMessage age="這是組件的age屬性!" />
</div>,
document.getElementById('example')
); </script>
上面代碼運行結果以下:
在上述代碼中,若是咱們將 <p>這是個測試標籤</p> 放開控制檯會報錯以下:
緣由是由於組件類只能包含一個頂層標籤(根標籤),能夠嵌套標籤例如咱們能夠將上述組件類寫成以下格式:
var HelloMessage = React.createClass({ render: function() { return <h1> 這是一個自定義組件---{this.props.name}---{this.props.age} <p>這是個測試標籤</p> </h1> } });
運行時就不會再報錯,結果以下所示:
在聲明與調用組件的時候咱們須要注意如下幾點:
注意:
① 自定義的 React組件類名以大寫字母開頭,使用大駝峯法則命名!
② 全部的組件都必須擁有本身的render!
③ 組件類只能包含一個頂層標籤(根標籤),能夠嵌套標籤!
④ 組件能夠任意加入屬性,其屬性屬能夠在組件類的 this.props.對象上獲取。(組件的全部子節點)
Tips: 在添加屬性時,
class 屬性須要寫成 className ,
for 屬性須要寫成 htmlFor ,
這是由於 class 和 for 是 JavaScript 的保留字
複合組件:建立多個組件來合成一個組件,即把父組件的不一樣功能點進行分離
<script type="text/babel"> var BaseModule = React.createClass({ render:function(){ return( <div> <Module title={this.props.title} /> {/* <h2>做品:{this.props.title}</h2>*/} <p>做者:{this.props.author}</p> </div> ) } }); var Module = React.createClass({ render:function(){ return( <h2>{this.props.title}</h2> ) } }); ReactDOM.render( <BaseModule title="圍城" author="錢鍾書" />, document.getElementById('container') ); </script>
上述複合組件運行結果以下:
好了。第一篇React的介紹就先這麼多了,經過這些實例咱們也大體瞭解了React所謂混寫的概念以及其便捷性,和Vue等框架孰優孰劣如今還不能太早下定論,在之後的幾篇文章裏咱們將會更深一步的瞭解下它們的異同再作比較。