国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

玩轉 React【第02期】:戀上 React 模板 JSX

ivydom / 1427人閱讀

摘要:今天我們來看一種優雅的編寫的代碼的一種方式。有了之后,可以幫助我們在編寫模板的時候結構更加簡單清晰。以上是筆者歸納總結,如有誤之處,歡迎指出。


往期回顧

前文中我們講解了利用 ReactElement 來編寫React程序,但是我們也看到這種方式編寫 React 特別的麻煩,而且層級結構特別不清晰。今天我們來看一種優雅的編寫React的代碼的一種方式 JSX。
JSX

JSX就是把 js 和 xml 結合起來編寫程序的一種格式,簡單的說就是給我們的 JS 添加了 XML 的語法擴展。有了 JSX 之后,可以幫助我們在編寫模板的時候結構更加簡單清晰。 我們可以對比一下,咱們使用 ReactElement 和 JSX 編寫同一個結構時的區別,大家就會喜歡上 JSX;

利用 ReactElement 編寫的結構

let Title = React.createElement("h1",null,"頁面標題"); 
let Header = React.createElement("header",null,Title);  
let Sider = React.createElement("aside",null,"側邊欄");  
let Content = React.createElement("article",null,"頁面內容"); let Main = React.createElement("div",null,Sider,Content); 
let Footer = React.createElement("footer",null,"頁面底部");  
let Page = React.createElement(      "div",      null,
     Header,
     Main,
     Footer);
 ReactDOM.render(
     Page,
     document.getElementById("root")
 );

利用 JSX 編寫的結構

ReactDOM.render(
        

頁面標題

頁面內容
頁面底部
document.getElementById("root") );

從上述示例中我們看到在 JSX 中我們可以直接使用我們熟悉的 HTML 標簽來書寫我們的模板,這樣的話結構層級非常清晰,也便于我們維護,當然上手也更便捷。

JSX 使用時的注意事項

在使用 JSX 中,不能嵌套多個同級標簽,一定要在外邊加一個父級
使用 JSX 時,我們需要使用 Babel 來進行編譯,所以必須引入 Babel 并且在 script 上 添加 type="text/babel" 來提示 babel 編譯我們 script 中的代碼,如下所示:

    

使用 JSX 時,當我們要寫的是一個 HTML 標簽時,請全部小寫
使用 JSX 時,所有標簽都必須閉合單標簽 <單標簽 /> 也一樣必須閉合

插值表達式

當我們需要在 JSX 中插入一個js數據時,我們就需要使用插值表達式。 在 JSX 中,讀到{} 時,它就會認為你要插入一條js數據,這個 {} 就是插值表達式,使用示例如下:

    let a = "hello";
    let b = "React";
    ReactDOM.render(
        

{a + b}

, document.getElementById("root") );

插值表達式在什么時候使用

當我們需要在 JSX 中使用 JS 中的數據的時候,我們就需要使用差值表達式
當我們要在 JSX 中添加 注釋的時候,也需要使用插值表達式 {/ 在這里寫JSX的注釋 /}

使用插值表達式時的注意事項

{}中,接收一個 JS 表達式,可以是我們的算術表達式,變量 或函數調用, 最終 {} 接收的是表達式 計算的結果
{}中,接收的是 函數調用時,該函數需要由返回值
{}中,不能寫 if else 以及 switch 這些流程控制語句,但是可以使用三目表達式 來進行判斷,示例如下:

    let a = 10;
          let b = 20;
          ReactDOM.render(
               

{a > b?"正確":"錯誤"}

, document.getElementById("root") );

{}中,不能寫 for 或者 whlie 這些循環語句,可以使用數組方法代替,示例如下:

    let arr = [
       "這是第一項",
       "這是第二項",
       "這是第三項"
      ]
      ReactDOM.render(
           
    {arr.map((item,index)=>{ /* 當我們要向 JSX 中添加一組元素時,一定要設置 key 屬性,具體內容 我們會在后邊的文章中講到 */ return
  • {item}
  • })}
, document.getElementById("root") );

不同類型數據在插值表達式中的數據輸出

字符串、數字:原樣輸出
布爾值、空、未定義:輸出空值,也不會有錯誤
對象:不能直接輸出,但是可以通過其他方式,Object.values、Object.keys 等方法去解析對象
數組:支持直接輸出,默認情況下把數組通過空字符串進行拼接

JSX的屬性操作

屬性值加了引號,那么就是一個普通的屬性書寫方式

    ReactDOM.render(
          

React筆記

, document.getElementById("root") );

屬性值可以直接寫成差值表達式

    let title = "React筆記" 
      ReactDOM.render(
          

React筆記

, document.getElementById("root") );

class:在 JSX 中需要使用 className 屬性去代替 class

ReactDOM.render(
      

React筆記

, document.getElementById("root") );

style:在 JSX 中 style 的值只能是對象 style={{ property : value }}

let style = {
  borderBottom: "1px solid #000"
  }
  ReactDOM.render(
      

React筆記

, document.getElementById("root") ); ReactDOM.render(

React筆記

, document.getElementById("root") );

看完了 JSX 的基本操作之后,我們來看一個小例子,如何通過數據來生成一個簡單的視圖

let data = {
        title: "巔峰榜·熱歌",
        details: [
                {
                name: "體面",
                message: "《前任3:再見前任》電影插曲"
                },
            
                {
                name: "說散就散",
                message: "《前任3:再見前任》電影主題曲"
                },
            
                {
                name: "BINGBIAN病變 (女聲版) ",
                message: "抖音熱門歌曲"
                }
        ]
 }
    ReactDOM.render(
        

{data.title}

    {data.details.map((item,index)=>{ return (
  • {item.name}

    {item.message}

  • ); })}
, document.getElementById("root") );

關于 JSX 的基本使用我們就說到這,在下一章節中我們要說到一個比較重的內容--組件。
當然在 React 中編寫組件的方式也會有多種,我們在下一篇中詳細的說。
——以上是筆者歸納總結,如有誤之處,歡迎指出。

訂閱號ID:Miaovclass
關注妙味訂閱號:“妙味前端”,為您帶來優質前端技術干貨;

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/98850.html

相關文章

  • 玩轉 React03】:邂逅 React 組件

    摘要:中組件可以將切分成一些的獨立的可復用的部件。組件的返回值是一個需要在也頁面上顯示的元素,也就是說中組件必須有返回值。 showImg(https://segmentfault.com/img/bVbjgxB?w=900&h=383); 上期回顧 前文我們講解了 React 模板 JSX,接著我們繼續來看看 React 組件又是如何工作的呢? 組件化開發到了今天已經是大家的共識,在 R...

    Lin_R 評論0 收藏0
  • react-template-easily(簡單易用的react前端工程化模板)

    摘要:是一套以技術搭建的項目模板,適用于移動端和開發。其中包含常用常用組件,精細計算的,以及諸多項目的實踐。 react-template-easily Desc: react-template-easily 是一套以react技術搭建的項目模板,適用于移動端H5, webapp和hybirdApp開發。其中包含常用20+常用組件,精細計算的rem,以及諸多項目的實踐。 URL: http...

    he_xd 評論0 收藏0
  • react-template-easily(簡單易用的react前端工程化模板)

    摘要:是一套以技術搭建的項目模板,適用于移動端和開發。其中包含常用常用組件,精細計算的,以及諸多項目的實踐。 react-template-easily Desc: react-template-easily 是一套以react技術搭建的項目模板,適用于移動端H5, webapp和hybirdApp開發。其中包含常用20+常用組件,精細計算的rem,以及諸多項目的實踐。 URL: http...

    rottengeek 評論0 收藏0
  • 玩轉 React(三)- JavaScript代碼里寫HTML一樣可以很優雅

    摘要:但是隨著程序邏輯越來越復雜,業務邏輯代碼跟代碼混到一起就變得越來越難以維護,所以就有了開發模式。其實只是給加了點糖上面這種在中寫類似代碼的語法被稱為。你可以理解為擴展版的。尤其是對一些相對還比較流行的框架或技術,更是如此。 這是《玩轉 React》系列的第三篇,看到本篇的標題,了解過 React 的同學可能已經大致猜到我要講什么了,本篇中要講的內容對于剛接觸 React 的同學來說,可...

    android_c 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<