最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

React詳細(xì)講解JSX和組件的使用

 更新時間:2022年08月31日 16:06:07   作者:小綿楊Yancy  
jsx就是javsscript與xml結(jié)合的一種格式,是js語法的一種擴展,只要把html代碼寫在js中就是jsx。react中定義組件有3種寫法:函數(shù)的方式、es5的寫法、es6(類)的寫法

一、React JSX

1.1 JSX簡介

JSX是全稱是(JavaScript XML)按照React 官方的解釋,JSX 是一個 JavaScript 的語法擴展,類似于模板語法,或者說是一個類似于 XML 的 ECMAScript 語法擴展,并且具備 JavaScript 的全部功能。

例如:

const element = <h1>Hello, world!</h1>;

或者:

function App(){
	return (
		<p>Hello React!</p>
	)
}

可以看到,定義的element和函數(shù)的返回值既不是字符串,也不是變量,而是html元素。

JSX 會被編譯為 React.createElement(), React.createElement() 將返回一個叫作“React Element”的 JS 對象。

JSX與React.createElement()相比,在實際功能效果一致的前提下,JSX 代碼層次分明、嵌套關(guān)系清晰;而 React.createElement 代碼則給人一種非常混亂的“雜糅感”,這樣的代碼不僅讀起來不友好,寫起來也費勁。

JSX 語法糖允許我們開發(fā)人員像寫 HTML 一樣來寫我們的 JS 代碼,也就是在js中寫html代碼,在降低學(xué)習(xí)成本的同時還提升了我們的研發(fā)效率和研發(fā)體驗。

1.2 JSX表達(dá)式

React JSX使用的就是JavaScript語法,那么自然也 可以使用JavaScript表達(dá)式。但是,在React JSX中使用JavaScript表達(dá)式要使用大括號"{ }"括起來。

例如:

ReactDOM.render(
    <p>Hello React! {alert('Hello!')}</p>,
    document.getElementById('app')
);

React JSX是支持嵌入表達(dá)式的,什么意思呢?簡單的來講,我們可以在JSX中引用JSX外定義的變量。

例如:

const name = "yancy";
ReactDOM.render(
	<p>Hello React! {alert(`Hello ${name}!`)}</p>,
	document.getElementById('app')
);

1.3 JSX條件表達(dá)式

React JSX中的JavaScript表達(dá)式時無法使用if條件語句的,React也沒有提供類似vue的v-if的指令來實現(xiàn)條件判斷邏輯。

我們可以使用三元表達(dá)式來實現(xiàn)條件表達(dá)式。

ReactDOM.render(
	<p>1 === 1 ? { 1 === 1 ? "true" : "false"}</p>,
	document.getElementById('app')
);

我們還可以通過在jsx中調(diào)用函數(shù)表達(dá)式來實現(xiàn)邏輯判斷的目的,調(diào)用的函數(shù)可以返回一個jsx,因為,jsx可以作為參數(shù)傳遞并且嵌套在另一個jsx中。

1.4 JSX循環(huán)表達(dá)式

在jsx中不能直接使用for表達(dá)式,可以使用map方法來實現(xiàn)數(shù)組的遍歷。

const hobby = ["sing","jump","rap","basketball"];
ReactDOM.render(
	(<ul>
	    {hobby.map(i => <li>{ i }</li>)}
	</ul>),
	document.getElementById('app')
);

1.5 JSX樣式表達(dá)式

react語法不支持內(nèi)聯(lián)形式的CSS樣式,因此可以使用JSX樣式表達(dá)式來實現(xiàn)頁面樣式。

ReactDOM.render(
    <p style={{fontSize: 1.2+'rem',color: "red"}}>Hello React!</p>,
    document.getElementById('app')
);

可以看到style屬性綁定的其實是一個js對象,請和css的樣式表區(qū)分,如果我們將這個對象直接提取出來,那么就比較明了了。

const p_style = { fontSize: 1.2 + "rem", color: "red" };
ReactDOM.render(
  <p style={p_style}>Hello React!</p>,
  document.getElementById("app")
);

效果是一樣的。

1.6 JSX注釋表達(dá)式

注釋內(nèi)容需要寫在大括號“{}”中,負(fù)責(zé)注釋的內(nèi)容會直接在頁面上展示出來。

二、React組件

組件化開發(fā)是react的重要思想之一,組件就是UI切分成一些獨立的、可復(fù)用的部件,例如頭部、底部、一個彈窗組件等。React組件通過props可以接收任意的輸入值,因此props也可以理解外參數(shù)的概念。

React組件有兩種形式:類組件和函數(shù)組件。

2.1 類組件

class HelloComponent extends React.Component {
  render() {
    return <p>Hello React!</p>;
  }
}
ReactDOM.render(<HelloComponent />, document.getElementById("app"));

React v16.8 之前的版本只支持類組件,所以很多以前項目是使用類組件寫的,但是現(xiàn)在新項目幾乎都是使用函數(shù)組件了,所以這里簡單地提一下類組件。

2.2 函數(shù)組件

function Hello() {
  return <p>Hello React!</p>;
}
ReactDOM.render(
  <div>
    <Hello />
  </div>,
  document.getElementById("app")
);

注意組件名第一個字母必須大寫!

2.3 React Props

組件需要被復(fù)用,那么可以通過接收不同的參數(shù)來實現(xiàn)復(fù)用。

例如:

function MyDialog(props) {
  return (
    <dialog open>
      <p>Hello {props.name}</p>
    </dialog>
  );
}
ReactDOM.render(
  <div>
    <MyDialog name="yancy" />
  </div>,
  document.getElementById("app")
);

可以看到,props其實就是包含了組件標(biāo)簽的屬性。

雖然React Props很好用,但是React規(guī)定Props是不能被修改的,也就是說Props是只讀的參數(shù),我們不能在組件中試圖修改prop的內(nèi)容。

到此這篇關(guān)于React詳細(xì)講解JSX和組件的使用的文章就介紹到這了,更多相關(guān)React JSX和組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談React組件之性能優(yōu)化

    淺談React組件之性能優(yōu)化

    這篇文章主要介紹了淺談React組件之性能優(yōu)化,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • React文字展開收起組件的實現(xiàn)示例

    React文字展開收起組件的實現(xiàn)示例

    本文主要介紹了React文字展開收起組件的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • React文件名和目錄規(guī)范最佳實踐記錄(總結(jié)篇)

    React文件名和目錄規(guī)范最佳實踐記錄(總結(jié)篇)

    React在使用時非常靈活,如果沒有一個規(guī)范約束項目,在開發(fā)過程中會非?;靵y,本文將介紹幾個優(yōu)秀的規(guī)范,介紹文件名和目錄前,需要先簡述一下幾種通用的類型,用來區(qū)分文件的功能,感興趣的朋友一起看看吧
    2022-05-05
  • React中多語言的配置方式

    React中多語言的配置方式

    這篇文章主要介紹了React中多語言的配置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 詳解React 元素渲染

    詳解React 元素渲染

    這篇文章主要介紹了React 元素渲染的相關(guān)資料,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • react性能優(yōu)化useMemo與useCallback使用對比詳解

    react性能優(yōu)化useMemo與useCallback使用對比詳解

    這篇文章主要為大家介紹了react性能優(yōu)化useMemo與useCallback使用對比詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • React實現(xiàn)控制減少useContext導(dǎo)致非必要的渲染詳解

    React實現(xiàn)控制減少useContext導(dǎo)致非必要的渲染詳解

    這篇文章主要介紹了React如何有效減少使用useContext導(dǎo)致的不必要渲染,使用useContext在改變一個數(shù)據(jù)時,是通過自己逐級查找對比改變的數(shù)據(jù)然后渲染,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • react-native fetch的具體使用方法

    react-native fetch的具體使用方法

    本篇文章主要介紹了react-native fetch的具體使用方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • React中使用外部樣式的3種方式(小結(jié))

    React中使用外部樣式的3種方式(小結(jié))

    這篇文章主要介紹了React中使用外部樣式的3種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • React Native可復(fù)用 UI分離布局組件和狀態(tài)組件技巧

    React Native可復(fù)用 UI分離布局組件和狀態(tài)組件技巧

    這篇文章主要為大家介紹了React Native可復(fù)用 UI分離布局組件和狀態(tài)組件使用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評論

福清市| 会昌县| 天长市| 墨竹工卡县| 广平县| 化德县| 上饶县| 抚州市| 思茅市| 额尔古纳市| 广东省| 灵山县| 甘肃省| 辽阳县| 北辰区| 九寨沟县| 香格里拉县| 灵寿县| 思南县| 全州县| 靖州| 青铜峡市| 罗平县| 寻乌县| 蓝山县| 宁阳县| 寿宁县| 富阳市| 金阳县| 长海县| 新乡县| 安庆市| 安岳县| 荃湾区| 汝南县| 昆山市| 襄城县| 岚皋县| 韶山市| 通化市| 惠来县|