跟隨阮一峰的全棧之路

Demo1 - Render JSX

React 中模板語法的高亮叫做JSX。它允許在JSX把HTML標(biāo)簽直接插入JavaScript代碼。ReactDOM.render()是轉(zhuǎn)換JSX到HTML的方法,渲染它到指定的DOM節(jié)點(diǎn)。

ReactDOM.render(
    <h1>hello world</h1>,
    document.getElementById('example')
);

注意:你必須使用 <script type="text/babel"> 來標(biāo)識(shí)JSX代碼,并且包含 browser.min.js庫,這個(gè)庫是Bable的瀏覽器版本,能夠進(jìn)入到npm發(fā)布的 babel-core@5,實(shí)際上在瀏覽器中執(zhí)行轉(zhuǎn)換。
在 v0.14 中,React 使用 JSTransform.js來轉(zhuǎn)換 <script type="text/jsx">,它已經(jīng)被廢棄了。

Demo2 - JavaScript in JSX

你也可以在JSX使用JavaScript。它將角括號(hào)(<)作為HTML高亮語法的開始,并作為JavaScript高亮語法的開始括號(hào)({)。

var names = ['洱海', '長(zhǎng)江', '黃河'];

ReactDOM.render(
  <div>{
      names.map(function (name, index) {
          return <div key={index}>welcome, {name} !</div>
      })
  }</div>,
document.getElementById('example')
)

注意(踩過的坑):

  • 原因:在 script 標(biāo)簽中沒有加 type="text/babel"
  • 報(bào)錯(cuò): Uncaught SyntaxError: Unexpected token <
  • 解決:添加type

  • 警告:
    Warning: Each child in an array or iterator should have a unique "key" prop. Check the top-level render call using <div>. See https://fb.me/react-warning-keys for more information.
  • 解決: 核心代碼 key={index}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容