久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

React:組件基礎(chǔ)篇

 QHSE數(shù)字化智造 2022-01-24
目錄
  • 創(chuàng)建項(xiàng)目

  • 函數(shù)組件(無狀態(tài)組件),負(fù)責(zé)靜態(tài)結(jié)構(gòu)展示

  • 類組件(有狀態(tài)組件),,負(fù)責(zé)更新UI,,讓頁面動(dòng)起來

  • 函數(shù)組件綁定事件

  • 通過類組件綁定事件

  • react事件對(duì)象

  • state基本使用

  • 受控組件:其值受到React控制的表單元素

  • 非受控組件,不推薦使用,,知道即可

創(chuàng)建項(xiàng)目
  1. 執(zhí)行“nvm list”命令,,查看當(dāng)前所選擇node的版本,因?yàn)槲译娔X上有幾個(gè)不同的node版本,,所以需要確認(rèn)下,,版本是否是react腳手架要求的。

  2. 如果發(fā)現(xiàn)node版本不是我們想要的,,執(zhí)行“nvm use 版本號(hào)”命令即可,。

  3. 執(zhí)行“npx create-react-app react-component”命令,創(chuàng)建項(xiàng)目,。

  4. 執(zhí)行“cd react-component”命令,,進(jìn)入文件夾內(nèi)

  5. 執(zhí)行“npm start”命令,啟動(dòng)項(xiàng)目,,ok

函數(shù)組件
無狀態(tài)組件(函數(shù)組件),,負(fù)責(zé)靜態(tài)結(jié)構(gòu)展示
1、導(dǎo)入react
import React from 'react';import ReactDOM from 'react-dom';
2,、創(chuàng)建函數(shù)組件,,這里有兩種方式。
第一種
function Hello() {  return (<div>這是我的第一個(gè)函數(shù)組件</div>)}
第二種
const Hello = () => (<div>這是我的第二個(gè)函數(shù)組件</div>)
3,、渲染組件
ReactDOM.render(<Hello/>, document.getElementById('root'))
完整代碼如下:
圖片
類組件
有狀態(tài)組件(類)組件,,負(fù)責(zé)更新UI,讓頁面動(dòng)起來
1,、創(chuàng)建類組件
class Hello extends React.Component { render() { return (<div>第一個(gè)類組件</div>) }}
2,、渲染組件
ReactDOM.render(<Hello/>, document.getElementById('root'))
完整代碼如下:
圖片
函數(shù)組件綁定事件
1、創(chuàng)建函數(shù)組件
function App() { // 事件處理程序 function handleClick() { console.log('函數(shù)組件,,事件觸發(fā)')  } return ( <button onClick={handleClick}>點(diǎn)我</button> )}
2,、渲染組件
ReactDOM.render(<App/>, document.getElementById('root'))
完整代碼如下:
圖片
通過類組件綁定事件
1、創(chuàng)建類組件
class App extends React.Component { // 事件處理程序 handleClick() { console.log('類組件綁定事件,,觸發(fā)')  } render() { return (<button onClick={this.handleClick}>點(diǎn)我</button>) }}
2,、渲染組件
ReactDOM.render(<App/>, document.getElementById('root'))
完整代碼如下:
圖片
React事件對(duì)象
1、阻止瀏覽器的默認(rèn)行為
class App extends React.Component { // 事件處理程序 handleClick(e) { // 阻止瀏覽器的默認(rèn)行為 e.preventDefault() console.log('a標(biāo)簽單擊事件觸發(fā)')  } render() { return (<a onClick={this.handleClick}>百度一下</a>) }}
2、渲染組件
ReactDOM.render(<App/>, document.getElementById('root'))
完整代碼如下
圖片
state基本使用
1,、創(chuàng)建類組件
// 2,、創(chuàng)建類組件class App extends React.Component { // 初始化state state = { count: 100} // 事件處理程序 onIncrement = () => { this.setState({ count : this.state.count - 1 })  } render() { return ( <div> <h1>計(jì)數(shù)器:{this.state.count}</h1>        <button onClick={this.onIncrement}> -1 </button> </div> ) }}
2、渲染組件
ReactDOM.render(<App/>, document.getElementById('root'))
完整代碼如下:
圖片
受控組件:其值受到React控制的表單元素
1,、創(chuàng)建類組件
class App extends React.Component { state = { txt: '', content: '', language: 'java', isChecked: false } // 處理變化 handleForm = e => { // 獲取當(dāng)前DOM對(duì)象 const target = e.target // 根據(jù)表單類型獲取值 const value = target.type === 'checkbox' ? target.checked : target.value // 獲取name const name = target.name // 根據(jù)name屬性設(shè)置對(duì)應(yīng)state this.setState({ [name]: value })    } render() { return ( <div> {/* 文本框 */} <input type='text' name='txt' value = {this.state.txt} onChange={this.handleForm}/> <br/> {/* 富文本框 */} <textarea name='content' value={this.state.content} onChange={this.handleForm}></textarea> <br/> {/* 下拉框 */} <select name='language' value={this.state.language} onChange={this.handleForm}> <option value='java'>java</option> <option value='javaScript'>javaScript</option> <option value='c'>C</option> </select> <br/> {/* 復(fù)選框 */} <input name='isChecked' type='checkbox' checked={this.state.isChecked} onChange={this.handleForm}/> </div> ) } }
2,、渲染組件
ReactDOM.render(<App/>, document.getElementById('root'))
完整代碼如下:
圖片
非受控組件,不推薦使用,,知道即可
1,、創(chuàng)建類組件
class App extends React.Component { constructor(){      super() // 創(chuàng)建ref this.txtRef = React.createRef()    } // 獲取文本框的值 getTxt = () => { console.log('文本框值為:', this.txtRef.current.value);    } render() { return ( <div> <input type='text' ref={this.txtRef}/> <button onClick={this.getTxt}>獲取文本框的值</button> </div> ) } }
2、渲染組件
ReactDOM.render(<App/>, document.getElementById('root'))
完整代碼如下:
圖片
注意事項(xiàng)
  • 組件的兩種創(chuàng)建方式:函數(shù)組件和類組件(注意首字母大寫)

  • 無狀態(tài)組件(函數(shù))組件,,負(fù)責(zé)靜態(tài)結(jié)構(gòu)展示

  • 有狀態(tài)組件(類)組件,,負(fù)責(zé)更新UI,讓頁面動(dòng)起來

  • 綁定事件注意this指向問題

  • 推薦使用受控組件來處理表單

寫在最后

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多