国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

React的元素、組件、事件、props傳遞

BlackMass / 1351人閱讀

摘要:如果你不想這樣每次改完代碼都要手動編譯,而且自己啟動,那么就要用到這個玩意。

</>復制代碼

  1. 通過配置webpack-dev-server啟動一個webserver,自動編譯,自動刷新瀏覽器的功能,我們開啟React基礎速過

接上一篇:構建React開發環境

使用webpack-dev-server

按照上篇文章構建好React開發環境后,我們發現每次寫完代碼還需要手動編譯,并且需要自己啟動一個webserver才可以在瀏覽器預覽效果。

如果你不想這樣每次改完代碼都要手動編譯,而且自己啟動webserver,那么就要用到webpack-dev-server這個玩意。

注意,這玩意就是開發時用用的,不要用于生產環境!

這玩意還有一個好處,是在改完代碼后,自動刷新瀏覽器,下面動手加上這貨吧

使用yarn安裝webpack-dev-server 到開發依賴中

</>復制代碼

  1. yarn add -D webpack-dev-server

添加webpack配置,配置devServer

</>復制代碼

  1. vi webpack.config.js
  2. "use strict";
  3. const path = require("path");
  4. const HtmlWebpackPlugin = require("html-webpack-plugin");
  5. const config = {
  6. mode: "development",
  7. entry: {
  8. app: "./src/js/index"
  9. },
  10. output: {
  11. filename: "[name].js",
  12. path: path.join(__dirname, "build")
  13. },
  14. plugins: [
  15. new HtmlWebpackPlugin({
  16. filename: "index.html",
  17. template: "./src/pages/index.html"
  18. })
  19. ],
  20. module: {
  21. rules: [
  22. { test: /.js$/, exclude: /node_modules/, loader: "babel-loader"}
  23. ]
  24. },
  25. // 過濾
  26. externals: {
  27. "react": "React",
  28. "react-dom": "ReactDOM"
  29. },
  30. devServer: {
  31. contentBase: path.join(__dirname, "dist"),
  32. compress: true,
  33. port: 9000
  34. }
  35. };
  36. module.exports = config;

package.json中添加一個scripts

</>復制代碼

  1. "dev": "webpack-dev-server"

啟動webpack-dev-server

</>復制代碼

  1. yarn run dev

之后就可以自動編譯并啟動一個webserver,用瀏覽器訪問http://localhost:9000

React的元素

React的元素必須要有一個根元素包裹起來,如:

</>復制代碼

  1. "use strict";
  2. import React from "react";
  3. import ReactDOM from "react-dom";
  4. let me =

    編程故事

  5. ReactDOM.render(
  6. me, // 使用元素
  7. document.getElementById("root")
  8. );

元素里面可以包含js的表達式,表達式使用大括號{}包起來

</>復制代碼

  1. let me =

    編程故事{alert("編程故事")}

React的組件

React的組件使用ES2015中的Class方式定義

</>復制代碼

  1. "use strict";
  2. import React from "react";
  3. import ReactDOM from "react-dom";
  4. // 組件可以外部定義然后在使用的地方在引入
  5. class Me extends React.Component {
  6. render() {
  7. return

    dongjun{(function(){alert("編程故事")})()}

  8. }
  9. }
  10. ReactDOM.render(
  11. ,
  12. document.getElementById("root")
  13. );

React組件的props傳遞

父組件給子組件傳遞數據,是通過給子組件上定義屬性,在子組件中通過this.props獲取

傳遞多個屬性:

</>復制代碼

  1. "use strict";
  2. import React from "react";
  3. import ReactDOM from "react-dom";
  4. class Me extends React.Component {
  5. render() {
  6. return

    {this.props.site} - {this.props.sologen} - {this.props.url}

  7. }
  8. }
  9. ReactDOM.render(
  10. ,
  11. document.getElementById("root")
  12. );

也可以傳遞一個對象給子組件的屬性,在子組件也要通過對象的方式去獲取

</>復制代碼

  1. "use strict";
  2. import React from "react";
  3. import ReactDOM from "react-dom";
  4. class Me extends React.Component {
  5. render() {
  6. return

    {this.props.site.name} - {this.props.site.sologen} - {this.props.site.url}

  7. }
  8. }
  9. const map = {
  10. name: "編程故事",
  11. sologen: "我的故事,也許也是你的故事",
  12. url: "https://www.mi360.cn"
  13. };
  14. ReactDOM.render(
  15. ,
  16. document.getElementById("root")
  17. );

還可以使用ES2015中的解構賦值

</>復制代碼

  1. "use strict";
  2. import React from "react";
  3. import ReactDOM from "react-dom";
  4. class Me extends React.Component {
  5. render() {
  6. return

    {this.props.name} - {this.props.sologen} - {this.props.url}

  7. }
  8. }
  9. const map = {
  10. name: "編程故事",
  11. sologen: "我的故事,也許也是你的故事",
  12. url: "https://www.mi360.cn"
  13. };
  14. ReactDOM.render(
  15. ,
  16. document.getElementById("root")
  17. );

React的事件

在組件中定義事件處理方法,在組件的render()方法中定義事件監聽

</>復制代碼

  1. "use strict";
  2. import React from "react";
  3. import ReactDOM from "react-dom";
  4. class Me extends React.Component {
  5. showMe() {
  6. alert("編程故事");
  7. }
  8. render() {
  9. return
  10. {this.props.name} - {this.props.sologen} - {this.props.url}

  11. }
  12. }
  13. const map = {
  14. name: "編程故事",
  15. sologen: "我的故事,也許也是你的故事",
  16. url: "https://www.mi360.cn"
  17. };
  18. ReactDOM.render(
  19. ,
  20. document.getElementById("root")
  21. );

還可以使用箭頭函數直接在事件監聽中處理

</>復制代碼

  1. "use strict";
  2. import React from "react";
  3. import ReactDOM from "react-dom";
  4. class Me extends React.Component {
  5. showMe() {
  6. alert("編程故事");
  7. }
  8. render() {
  9. return
  10. {this.props.name} - {this.props.sologen} - {this.props.url}

  11. {
  12. alert("編程故事")
  13. }} type="button" value="按鈕"/>
  14. }
  15. }
  16. const map = {
  17. name: "編程故事",
  18. sologen: "我的故事,也許也是你的故事",
  19. url: "https://www.mi360.cn"
  20. };
  21. ReactDOM.render(
  22. ,
  23. document.getElementById("root")
  24. );

父組件傳遞數組給子組件遍歷

</>復制代碼

  1. "use strict";
  2. import React from "react";
  3. import ReactDOM from "react-dom";
  4. class Me extends React.Component {
  5. render() {
  6. return
  7. {this.props.data.map((item) => {
  8. return

    {

  9. alert(item.name)
  10. }
  11. }>{item.name} - {item.sologen} - {item.url}
  12. })}
  13. }
  14. }
  15. const map = [{
  16. name: "編程故事",
  17. sologen: "我的故事,也許也是你的故事",
  18. url: "https://www.mi360.cn"
  19. },{
  20. name: "246哈",
  21. sologen: "開心很簡單",
  22. url: "https://www.246ha.com"
  23. }];
  24. ReactDOM.render(
  25. ,
  26. document.getElementById("root")
  27. );

原文鏈接:https://www.mi360.cn/articles...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/105860.html

相關文章

  • React

    摘要:基礎創建虛擬參數元素名稱,例如參數屬性集合,例如,,,從參數開始,表示該元素的子元素,通常這些元素通過創建,文本文件可以直接插入嘻嘻哈哈這是渲染器,將元素渲染到頁面中。 React簡介 FeceBook開源的一套框架,專注于MVC的視圖V模塊。實質是對V視圖的一種實現。 React框架的設計沒有過分依賴于某個環境,它自建一套環境,就是virtual DOM(虛擬DOM)。 提供基礎AP...

    hlcc 評論0 收藏0
  • 【全棧React】第10天: 交互性

    摘要:我們可以使用函數構造函數將我們的組件轉換為狀態什么是函數構造函數在中,函數是一個在創建對象時運行的函數。我們將使用構造函數方法在對象創建時正確運行對象時設置實例變量。每當一個有一個屬性被設置時,它會在該字段改變的每個時間調用函數。 本文轉載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3823原文:https://www.fullsta...

    馬永翠 評論0 收藏0
  • 掌握react,這一篇就夠了

    摘要:小明小明兒子,可以看到組件顯示了父組件的。小明受控組件和非受控組件受控組件和非受控組件這些都是指的表單組件,當一個表單的值是通過改變的而不是通過是受控組件,否則就是非受控組件。 react眾所周知的前端3大主流框架之一,由于出色的性能,完善的周邊設施風頭一時無兩。本文就帶大家一起掌握react。 jsx語法 前端MVVM主流框架都有一套自己的模板處理方法,react則使用它獨特的jsx...

    Enlightenment 評論0 收藏0
  • 常見react面試題匯總(適合中級前端)

    摘要:但在中會有些不同,包含表單元素的組件將會在中追蹤輸入的值,并且每次調用回調函數時,如會更新,重新渲染組件。在構造函數中調用的目的是什么在被調用之前,子類是不能使用的,在中,子類必須在中調用。將使用單個事件監聽器監聽頂層的所有事件。 已經開源 地址:https://github.com/nanhupatar...關注我們團隊:showImg(https://segmentfault.co...

    leone 評論0 收藏0
  • React入門看這篇就夠了

    摘要:背景介紹入門實例教程起源于的內部項目,因為該公司對市場上所有框架,都不滿意,就決定自己寫一套,用來架設的網站。做出來以后,發現這套東西很好用,就在年月開源了。也就是說,通過鉤子函 react - JSX React 背景介紹 React 入門實例教程 React 起源于 Facebook 的內部項目,因為該公司對市場上所有 JavaScript MVC 框架,都不滿意,就決定自己寫一套...

    luckyw 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<