亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

創(chuàng)建組件

函數(shù)組件

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

  • 使用 JS 的函數(shù)(或箭頭函數(shù))創(chuàng)建的組件,叫做函數(shù)組件
  • 約定1:函數(shù)名稱必須以大寫字母開頭,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)建組件,首字母大寫
// 組件必須要有返回值
function Music() {
  return (
    <div>
      <h1>haha</h1>
    </div>
  )
}
const VNode = (
  <div>
    <Music></Music>
  </div>
)
// 3. 掛載
ReactDom.createRoot(document.querySelector('#root')).render(VNode)

類組件

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

  • 約定1:類名稱也必須以大寫字母開頭
  • 約定2:類組件應(yīng)該繼承 React.Component 父類,從而使用父類中提供的方法或?qū)傩?/li>
  • 約定3:類組件必須提供 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,類組件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)組件與無狀態(tài)組件

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

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

類組件的狀態(tài)

  • 狀態(tài)state即數(shù)據(jù),是組件內(nèi)部的私有數(shù)據(jù),只有在組件內(nèi)部可以使用
  • state的值是一個對象,表示一個組件中可以有多個數(shù)據(jù)
  • 通過 this.state.xxx 來獲取狀態(tài)
// 1. 導(dǎo)包
import React from "react"
import ReactDom from 'react-dom/client'
// 類組件  有狀態(tài)  如果有狀態(tài),狀態(tài)需要切換,更新視圖 用類組件
class App extends React.Component {
  // state節(jié)點(diǎn)中提供狀態(tài)
  // 通過 this.state.xxx 來獲取狀態(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)

事件處理

注冊事件

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

// 1. 導(dǎo)包
import React from "react"
import ReactDom from 'react-dom/client'
// 類組件  有狀態(tài)  如果有狀態(tài),狀態(tài)需要切換,更新視圖 用類組件
class App extends React.Component {
  // state節(jié)點(diǎn)中提供狀態(tài)    通過 this.state.xxx 來獲取狀態(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解React中的todo-list

    詳解React中的todo-list

    這篇文章主要介紹了React中的todo-list的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • React?組件性能最佳優(yōu)化實(shí)踐分享

    React?組件性能最佳優(yōu)化實(shí)踐分享

    這篇文章主要介紹了React組件性能最佳優(yōu)化實(shí)踐分享,React組件性能優(yōu)化的核心是減少渲染真實(shí)DOM節(jié)點(diǎn)的頻率,減少Virtual?DOM比對的頻率,更多相關(guān)內(nèi)容需要的朋友可以參考一下
    2022-09-09
  • 利用React Router4實(shí)現(xiàn)的服務(wù)端直出渲染(SSR)

    利用React Router4實(shí)現(xiàn)的服務(wù)端直出渲染(SSR)

    這篇文章主要介紹了利用React Router4實(shí)現(xiàn)的服務(wù)端直出渲染(SSR),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • React組件通信淺析

    React組件通信淺析

    這篇文章主要介紹了React組件通信,在開發(fā)中組件通信是React中的一個重要的知識點(diǎn),本文通過實(shí)例代碼給大家講解react中常用的父子、跨組件通信的方法,需要的朋友可以參考下
    2022-12-12
  • React中使用UEditor百度富文本的方法

    React中使用UEditor百度富文本的方法

    這篇文章主要介紹了React中使用UEditor的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 淺談React 的引入

    淺談React 的引入

    React相比于Vue,更注重對JS的掌握,Vue把能做的都做了,只剩下最簡單的讓開發(fā)者使用,開發(fā)者需要記憶Vue的特定指令后就可很輕松地開發(fā)。相反,React是提供了一種思路和方式,沒有過多的限制,但要求會相對高些,需要開發(fā)者對JS達(dá)到精通的地步才能真正運(yùn)用好React。
    2021-05-05
  • 如何強(qiáng)制刷新react hooks組件

    如何強(qiáng)制刷新react hooks組件

    這篇文章主要介紹了如何強(qiáng)制刷新react hooks組件問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 在react中使用tailwind的問題

    在react中使用tailwind的問題

    這篇文章主要介紹了在react中使用tailwind的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • react中(含hooks)同步獲取state值的方式

    react中(含hooks)同步獲取state值的方式

    這篇文章主要介紹了react(含hooks)中同步獲取state值的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • React如何利用Antd的Form組件實(shí)現(xiàn)表單功能詳解

    React如何利用Antd的Form組件實(shí)現(xiàn)表單功能詳解

    這篇文章主要給大家介紹了關(guān)于React如何利用Antd的Form組件實(shí)現(xiàn)表單功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04

最新評論