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

react組件基本用法示例小結(jié)

 更新時(shí)間:2020年04月27日 11:57:44   作者:人生如初見(jiàn)_張默  
這篇文章主要介紹了react組件基本用法,結(jié)合實(shí)例形式分析了react組件傳值、生命周期、受控組件和非受控組件等相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了react組件基本用法。分享給大家供大家參考,具體如下:

組件間傳值:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>test</title>
</head>
<body>
<div id="app">
 
</div>
<script src="../js/react.production.min.js"></script><!--react核心庫(kù)-->
<script src="../js/react-dom.production.min.js"></script><!--操作DOM的react擴(kuò)展庫(kù)-->
<script src="../js/babel.min.js"></script><!--解析JSX語(yǔ)法-->
<script type="text/babel">
  class Com extends React.Component {
    click = ()=>{
      // console.log(this.input);
      // console.log(this.p.innerText);
      console.log(this.refs.my.value);//父組件訪問(wèn)子組件用refs
    };
 
    render() {
      return (
        <div>
          <input type="text" ref={(input)=>{this.input=input}}/>
          <p ref={(p)=>{this.p=p}}>我是段落</p>
          <input type="text" ref="my"/>
          <button onClick={this.click}>點(diǎn)擊</button>
        </div>
      );
    }
  }
 
  ReactDOM.render(<Com/>,document.getElementById('app'));
</script>
</body>
</html>

列表:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>test</title>
</head>
<body>
<div id="app"></div>
<script src="../js/react.production.min.js"></script><!--react核心庫(kù)-->
<script src="../js/react-dom.production.min.js"></script><!--操作DOM的react擴(kuò)展庫(kù)-->
<script src="../js/babel.min.js"></script><!--解析JSX語(yǔ)法-->
<script type="text/babel">
  class Add extends React.Component {
    click = ()=>{
      this.props.allAdd(this.input.value);
    };
    render() {
      const {length} = this.props;
      return (
        <div>
          <input type="text" ref={(input)=>{this.input=input}}/>
          <button onClick={this.click}>add{length}</button>
        </div>
      )
    }
  }
 
  class List extends React.Component {
    render() {
      const {list} = this.props;
      return (
        <div>
          <ul>
            {
              list.map((v,i)=>{
                return <li key={i}>{v}</li>
              })
            }
          </ul>
        </div>
      )
    }
  }
 
  class App extends React.Component {
    state = {
      list:['吃飯','睡覺(jué)','打游戲','游泳']
    };
    add = (value)=>{
      const {list} = this.state;//獲取原先的list
      list.unshift(value);//將添加的值傳入list
      this.setState(list);//重新設(shè)置list
    };
    render() {
      const {list} = this.state;//獲取list
      return (
        <div>
          <Add allAdd={this.add} length={list.length}/>
          <List list={list} />
        </div>
      )
    }
  }
 
  ReactDOM.render(<App />,document.getElementById('app'));
</script>
</body>
</html>

受控組件和非受控組件:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>test</title>
</head>
<body>
<div id="app"></div>
<script src="../js/react.production.min.js"></script><!--react核心庫(kù)-->
<script src="../js/react-dom.production.min.js"></script><!--操作DOM的react擴(kuò)展庫(kù)-->
<script src="../js/babel.min.js"></script><!--解析JSX語(yǔ)法-->
<script type="text/babel">
  class Com extends React.Component {
    state = {
      age:''
    };
    //非受控組件 不受state控制
    click = () => {
      console.log(this.input.value);
    };
    change = (event)=>{
      console.log(event.target.value);
      this.setState({
        age: event.target.value
      })
    };
    render() {
      const {age} = this.props;
      return (
        <div>
          姓名:<input type="text" ref={(input)=>{this.input=input}}/>
          <button onClick={this.click}>獲取姓名</button>
          年齡:<input type="text" value={age} onChange={this.change}/>
        </div>
      );
    };
  }
  ReactDOM.render(<Com />,document.getElementById('app'));
</script>
</body>
</html>

組件生命周期:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Test</title>
</head>
<body>
<div id="app"></div>
<script src="../js/react.production.min.js"></script><!--react核心庫(kù)-->
<script src="../js/react-dom.production.min.js"></script><!--操作DOM的react擴(kuò)展庫(kù)-->
<script src="../js/babel.min.js"></script><!--解析JSX語(yǔ)法-->
<script type="text/babel">
  class Com extends React.Component {
    state = {
      msg:123
    };
 
    sing() {
      return new Promise((resolve,reject)=>{
        setTimeout(()=>{
          resolve('唱一首歌');
        },1000);
      })
    };
 
    async get() {
      await this.sing().then((res)=>{
        console.log(res);
      });
    };
 
    componentWillMount() {
      //will會(huì)先執(zhí)行,但不一定先執(zhí)行完畢
      console.log('之前');
      // this.get();
    }
 
    componentDidMount() {
      //進(jìn)行ajax操作,獲取后臺(tái)數(shù)據(jù)
      console.log('之后');
    }
 
    shouldComponentUpdate(nextProps, nextState) {
      const {msg} = this.state;
 
      //如果沒(méi)有
      if ({msg} !== nextState) {
        return true;
      }
      console.log('更新');
      return false;
    }
 
    componentWillUpdate() {
      console.log('更新之前');
    }
 
    componentDidUpdate() {
      console.log('更新之后');
      //再次獲取數(shù)據(jù)
    }
 
    click = ()=>{
      this.setState({
        msg: 234
      })
    };
 
    render() {
      console.log('render');
      const {msg} = this.state;
      return(
        <div>
          <h1>{msg}</h1>
          <button onClick={this.click}>更新</button>
        </div>
      )
    }
  }
 
  ReactDOM.render(<Com />,document.getElementById('app'));
</script>
</body>
</html>

希望本文所述對(duì)大家react程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • React路由攔截模式及withRouter示例詳解

    React路由攔截模式及withRouter示例詳解

    這篇文章主要為大家介紹了React路由攔截模式及withRouter示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 詳解React如何獲取狀態(tài)的舊值

    詳解React如何獲取狀態(tài)的舊值

    最近剛開(kāi)始接觸 React,突然腦海出現(xiàn)一個(gè)問(wèn)題,React中怎么在狀態(tài)更新時(shí)獲取它的舊值,特別是如果你之前用過(guò) Vue,你可能會(huì)想知道 React 中有沒(méi)有類(lèi)似 Vue 的 watch 屬性,那么react中怎么實(shí)現(xiàn)呢?本文就給大家介紹一下React如何獲取狀態(tài)的舊值,需要的朋友可以參考下
    2024-07-07
  • React如何實(shí)現(xiàn)像Vue一樣將css和js寫(xiě)在同一文件

    React如何實(shí)現(xiàn)像Vue一樣將css和js寫(xiě)在同一文件

    這篇文章主要介紹了React如何實(shí)現(xiàn)像Vue一樣將css和js寫(xiě)在同一文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • React特征學(xué)習(xí)之Form格式示例詳解

    React特征學(xué)習(xí)之Form格式示例詳解

    這篇文章主要為大家介紹了React特征學(xué)習(xí)之Form格式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • React項(xiàng)目中不需要jQuery原因分析

    React項(xiàng)目中不需要jQuery原因分析

    在Web開(kāi)發(fā)的早期,jQuery是一個(gè)革命性的庫(kù),它極大地簡(jiǎn)化了DOM操作、事件處理、動(dòng)畫(huà)制作以及Ajax請(qǐng)求等任務(wù),React的出現(xiàn),jQuery在新項(xiàng)目中的必要性開(kāi)始受到質(zhì)疑,本文將探討為什么在React應(yīng)用中不需要jQuery,感興趣的朋友可以參考下
    2024-02-02
  • React?Suspense解決競(jìng)態(tài)條件詳解

    React?Suspense解決競(jìng)態(tài)條件詳解

    這篇文章主要為大家介紹了React?Suspense解決競(jìng)態(tài)條件詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • 聊聊jenkins部署vue/react項(xiàng)目的問(wèn)題

    聊聊jenkins部署vue/react項(xiàng)目的問(wèn)題

    本文給大家介紹了jenkins部署vue/react項(xiàng)目的問(wèn)題,文末給大家提到了centOS安裝jenkins的腳本,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-02-02
  • React?Hooks--useEffect代替常用生命周期函數(shù)方式

    React?Hooks--useEffect代替常用生命周期函數(shù)方式

    這篇文章主要介紹了React?Hooks--useEffect代替常用生命周期函數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • react跳轉(zhuǎn)后路由變了頁(yè)面沒(méi)刷新的解決

    react跳轉(zhuǎn)后路由變了頁(yè)面沒(méi)刷新的解決

    這篇文章主要介紹了react跳轉(zhuǎn)后路由變了頁(yè)面沒(méi)刷新的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • react的hooks的用法詳解

    react的hooks的用法詳解

    這篇文章主要介紹了react的hooks的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評(píng)論

博爱县| 彰武县| 封丘县| 康马县| 乌兰察布市| 长宁区| 昌江| 乐至县| 海晏县| 临汾市| 乐安县| 麟游县| 肥城市| 庐江县| 望都县| 开鲁县| 镇远县| 铜梁县| 长寿区| 威信县| 宜城市| 成武县| 广昌县| 天峨县| 青川县| 九台市| 敦煌市| 马边| 莱芜市| 海城市| 南溪县| 营山县| 普格县| 武冈市| 云林县| 阿城市| 宜宾市| 洛南县| 晋州市| 潼关县| 尉犁县|