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

React組件與事件的創(chuàng)建使用教程

 更新時(shí)間:2023年02月10日 10:11:53   作者:Morningo  
react事件綁定時(shí)。this并不會(huì)指向當(dāng)前DOM元素。往往使用bind來(lái)改變this指向,今天通過(guò)本文給大家介紹React事件綁定的方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

創(chuàng)建組件

函數(shù)組件

函數(shù)組件:使用JS的函數(shù)或者箭頭函數(shù)創(chuàng)建的組件

  • 使用 JS 的函數(shù)(或箭頭函數(shù))創(chuàng)建的組件,叫做函數(shù)組件
  • 約定1:函數(shù)名稱(chēng)必須以大寫(xiě)字母開(kāi)頭,React 據(jù)此區(qū)分組件和普通的 HTML
  • 約定2:函數(shù)組件必須有返回值,表示該組件的 UI 結(jié)構(gòu)
// 1. 導(dǎo)包
import React from 'react'
import ReactDom from 'react-dom/client'
// 2. 創(chuàng)建 函數(shù)式組件
// 普通函數(shù)或者箭頭函數(shù)創(chuàng)建組件,首字母大寫(xiě)
// 組件必須要有返回值
function Music() {
  return (
    <div>
      <h1>haha</h1>
    </div>
  )
}
const VNode = (
  <div>
    <Music></Music>
  </div>
)
// 3. 掛載
ReactDom.createRoot(document.querySelector('#root')).render(VNode)

類(lèi)組件

類(lèi)組件:使用 ES6 的 class 創(chuàng)建的組件,叫做類(lèi)(class)組件

  • 約定1:類(lèi)名稱(chēng)也必須以大寫(xiě)字母開(kāi)頭
  • 約定2:類(lèi)組件應(yīng)該繼承 React.Component 父類(lèi),從而使用父類(lèi)中提供的方法或?qū)傩?/li>
  • 約定3:類(lèi)組件必須提供 render 方法
  • 約定4:render 方法必須有返回值,表示該組件的 UI 結(jié)構(gòu)
// 1. 導(dǎo)包
import React from 'react'
import ReactDom from 'react-dom/client'
// 2.
class Hello extends React.Component {
  render() {
    return <h1>哈哈</h1>
  }
}
const VNode = (
  <>
    <Hello></Hello>
  </>
)
// 3. 掛載
ReactDom.createRoot(document.querySelector('#root')).render(VNode)

組件提取到單獨(dú)的文件中

components文件夾下,創(chuàng)建函數(shù)組件hello.js,類(lèi)組件home.js,

hello.js

const Hello = () => <h1>我是hello組件</h1>
export default Hello

home.js

import React from 'react'
class Home extends React.Component {
  render() {
    return <h2>home</h2>
  }
}
export default Home

index.js中導(dǎo)入

// 1. 導(dǎo)包
import React from 'react'
import ReactDom from 'react-dom/client'
// 導(dǎo)入組件
import Hello from './components/hello'
import Home from './components/home'
// 2. 創(chuàng)建虛擬DOM
const App = (
  <>
    <Hello></Hello>
    <Home></Home>
  </>
)
// 3. 掛載
ReactDom.createRoot(document.querySelector('#root')).render(App)

有狀態(tài)組件與無(wú)狀態(tài)組件

狀態(tài)即數(shù)據(jù)

  • 函數(shù)組件又叫做無(wú)狀態(tài)組件 函數(shù)組件是不能自己提供數(shù)據(jù) 【前提:基于hooks之前說(shuō)的 16.8之前】
  • 類(lèi)組件又叫做有狀態(tài)組件類(lèi)組件可以自己提供數(shù)據(jù),數(shù)據(jù)如果發(fā)生了改變,內(nèi)容會(huì)自動(dòng)的更新
  • 組件的私有數(shù)據(jù)也稱(chēng)為狀態(tài) ,當(dāng)組件的狀態(tài)發(fā)生了改變,頁(yè)面結(jié)構(gòu)也就發(fā)生了改變?!緮?shù)據(jù)驅(qū)動(dòng)視圖】
  • 函數(shù)組件是沒(méi)有狀態(tài)的,只負(fù)責(zé)頁(yè)面的展示(靜態(tài),不會(huì)發(fā)生變化)性能比較高
  • 類(lèi)組件有自己的狀態(tài),負(fù)責(zé)更新UI,只要類(lèi)組件的數(shù)據(jù)發(fā)生了改變,UI就會(huì)發(fā)生更新(動(dòng)態(tài))。
  • 在復(fù)雜的項(xiàng)目中,一般都是由函數(shù)組件和類(lèi)組件共同配合來(lái)完成的。
// 1. 導(dǎo)包
import React from "react"
import ReactDom from 'react-dom/client'
// 函數(shù)組件  沒(méi)有狀態(tài)  僅僅做一些數(shù)據(jù)展示的工作,可以使用函數(shù)組件
// function App() {
//   return (
//     <div>我是組件</div>
//   )
// }
// 類(lèi)組件  有狀態(tài)  如果有狀態(tài),狀態(tài)需要切換,更新視圖 用類(lèi)組件
class App extends React.Component {
  render() {
    return (
      <h1>我是類(lèi)組件</h1>
    )
  }
}
const VNode = (
  <div>
    <App></App>
  </div>
)
ReactDom.createRoot(document.querySelector('#root')).render(VNode)

類(lèi)組件的狀態(tài)

  • 狀態(tài)state即數(shù)據(jù),是組件內(nèi)部的私有數(shù)據(jù),只有在組件內(nèi)部可以使用
  • state的值是一個(gè)對(duì)象,表示一個(gè)組件中可以有多個(gè)數(shù)據(jù)
  • 通過(guò) this.state.xxx 來(lái)獲取狀態(tài)
// 1. 導(dǎo)包
import React from "react"
import ReactDom from 'react-dom/client'
// 類(lèi)組件  有狀態(tài)  如果有狀態(tài),狀態(tài)需要切換,更新視圖 用類(lèi)組件
class App extends React.Component {
  // state節(jié)點(diǎn)中提供狀態(tài)
  // 通過(guò) this.state.xxx 來(lái)獲取狀態(tài)
  state = {
    name: 'Tt',
    age: 17
  }
  render() {
    return (
      <h1>{this.state.name} ----- {this.state.age}</h1>
    )
  }
}
const VNode = (
  <div>
    <App></App>
  </div>
)
ReactDom.createRoot(document.querySelector('#root')).render(VNode)

事件處理

注冊(cè)事件

語(yǔ)法:on+事件名={事件處理程序} 比如onClick={this.handleClick}

// 1. 導(dǎo)包
import React from "react"
import ReactDom from 'react-dom/client'
// 類(lèi)組件  有狀態(tài)  如果有狀態(tài),狀態(tài)需要切換,更新視圖 用類(lèi)組件
class App extends React.Component {
  // state節(jié)點(diǎn)中提供狀態(tài)    通過(guò) this.state.xxx 來(lái)獲取狀態(tài)
  state = {
    name: 'Tt',
    age: 17
  }
  // 提供一些方法
  handleClick() {
    console.log('點(diǎn)擊');
  }
  render() {
    return (
      <div>
        <button onClick={this.handleClick}>按鈕</button>
      </div>
    )
  }
}
const VNode = (
  <div>
    <App></App>
  </div>
)
ReactDom.createRoot(document.querySelector('#root')).render(VNode)

到此這篇關(guān)于React組件與事件的創(chuàng)建使用教程的文章就介紹到這了,更多相關(guān)React組件與事件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • ReactNative中使用Redux架構(gòu)總結(jié)

    ReactNative中使用Redux架構(gòu)總結(jié)

    本篇文章主要介紹了ReactNative中使用Redux架構(gòu)總結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • React框架核心原理全面深入解析

    React框架核心原理全面深入解析

    React是前端開(kāi)發(fā)每天都用的前端框架,自然要深入掌握它的原理。我用 React 也挺久了,這篇文章就來(lái)總結(jié)一下我對(duì) react 原理的理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-11-11
  • 使用React和Redux Toolkit實(shí)現(xiàn)用戶(hù)登錄功能

    使用React和Redux Toolkit實(shí)現(xiàn)用戶(hù)登錄功能

    在React中,用戶(hù)登錄功能是一個(gè)常見(jiàn)的需求,為了實(shí)現(xiàn)該功能,需要對(duì)用戶(hù)輸入的用戶(hù)名和密碼進(jìn)行驗(yàn)證,并將驗(yàn)證結(jié)果保存到應(yīng)用程序狀態(tài)中,在React中,可以使用Redux Toolkit來(lái)管理應(yīng)用程序狀態(tài),從而實(shí)現(xiàn)用戶(hù)登錄功能,需要詳細(xì)了解可以參考下文
    2023-05-05
  • React?實(shí)現(xiàn)具備吸頂和吸底功能組件實(shí)例

    React?實(shí)現(xiàn)具備吸頂和吸底功能組件實(shí)例

    這篇文章主要為大家介紹了React?實(shí)現(xiàn)具備吸頂和吸底功能組件實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-02-02
  • React入門(mén)教程之Hello World以及環(huán)境搭建詳解

    React入門(mén)教程之Hello World以及環(huán)境搭建詳解

    Facebook 為了開(kāi)發(fā)一套更好更適合自己的JavaScript MVC 框架,所以產(chǎn)生了react。后來(lái)反響很好,所以于2013年5月開(kāi)源。下面這篇文章主要給大家介紹了關(guān)于React入門(mén)教程之Hello World以及環(huán)境搭建的相關(guān)資料,需要的朋友可以參考借鑒。
    2017-07-07
  • 如何利用React實(shí)現(xiàn)圖片識(shí)別App

    如何利用React實(shí)現(xiàn)圖片識(shí)別App

    圖片識(shí)別這個(gè)功能在很多app中都有,下面這篇文章主要給大家介紹了關(guān)于如何利用React實(shí)現(xiàn)圖片識(shí)別App的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-01-01
  • React項(xiàng)目經(jīng)驗(yàn)總結(jié)及遇到的坑

    React項(xiàng)目經(jīng)驗(yàn)總結(jié)及遇到的坑

    這篇文章主要介紹了React項(xiàng)目經(jīng)驗(yàn)總結(jié),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • react?component?function組件使用詳解

    react?component?function組件使用詳解

    這篇文章主要為大家介紹了react?component?function組件的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 詳解React中的組件通信問(wèn)題

    詳解React中的組件通信問(wèn)題

    本篇文章中主要介紹了詳解React中的組件通信問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • react-router中<Link/>的屬性詳解

    react-router中<Link/>的屬性詳解

    這篇文章主要給大家介紹了關(guān)于react-router中<Link/>屬性的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-06-06

最新評(píng)論

专栏| 汉中市| 察雅县| 金平| 定远县| 凤庆县| 宁蒗| 历史| 郓城县| 开阳县| 万州区| 共和县| 拉孜县| 鹤壁市| 吴忠市| 招远市| 乌鲁木齐县| 南投县| 北碚区| 阿荣旗| 鄂州市| 铜山县| 宜章县| 建湖县| 哈巴河县| 博野县| 金平| 枣强县| 邳州市| 怀远县| 巴里| 永仁县| 雷州市| 甘南县| 肇东市| 长汀县| 永春县| 余江县| 浦东新区| 聊城市| 安徽省|