成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

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

BlackMass / 1348人閱讀

摘要:如果你不想這樣每次改完代碼都要手動(dòng)編譯,而且自己?jiǎn)?dòng),那么就要用到這個(gè)玩意。

通過(guò)配置webpack-dev-server啟動(dòng)一個(gè)webserver,自動(dòng)編譯,自動(dòng)刷新瀏覽器的功能,我們開(kāi)啟React基礎(chǔ)速過(guò)

接上一篇:構(gòu)建React開(kāi)發(fā)環(huán)境

使用webpack-dev-server

按照上篇文章構(gòu)建好React開(kāi)發(fā)環(huán)境后,我們發(fā)現(xiàn)每次寫(xiě)完代碼還需要手動(dòng)編譯,并且需要自己?jiǎn)?dòng)一個(gè)webserver才可以在瀏覽器預(yù)覽效果。

如果你不想這樣每次改完代碼都要手動(dòng)編譯,而且自己?jiǎn)?dòng)webserver,那么就要用到webpack-dev-server這個(gè)玩意。

注意,這玩意就是開(kāi)發(fā)時(shí)用用的,不要用于生產(chǎn)環(huán)境!

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

使用yarn安裝webpack-dev-server 到開(kāi)發(fā)依賴(lài)中

yarn add -D webpack-dev-server

添加webpack配置,配置devServer

vi webpack.config.js

"use strict";

const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");

const config = {
    mode: "development",
    entry: {
        app: "./src/js/index"
    },
    output: {
        filename: "[name].js",
        path: path.join(__dirname, "build")
    },
    plugins: [
        new HtmlWebpackPlugin({
            filename: "index.html",
            template: "./src/pages/index.html"
        })
    ],
    module: {
        rules: [
            { test: /.js$/, exclude: /node_modules/, loader: "babel-loader"}
        ]
    },
    // 過(guò)濾
    externals: {
        "react": "React",
        "react-dom": "ReactDOM"
    },
    devServer: {
        contentBase: path.join(__dirname, "dist"),
        compress: true,
        port: 9000
    }
};

module.exports = config;

package.json中添加一個(gè)scripts

"dev": "webpack-dev-server"

啟動(dòng)webpack-dev-server

yarn run dev

之后就可以自動(dòng)編譯并啟動(dòng)一個(gè)webserver,用瀏覽器訪(fǎng)問(wèn)http://localhost:9000

React的元素

React的元素必須要有一個(gè)根元素包裹起來(lái),如:

"use strict";

import React from "react";
import ReactDOM from "react-dom";

let me = 

編程故事

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

元素里面可以包含js的表達(dá)式,表達(dá)式使用大括號(hào){}包起來(lái)

let me = 

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

React的組件

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

"use strict";

import React from "react";
import ReactDOM from "react-dom";

// 組件可以外部定義然后在使用的地方在引入
class Me extends React.Component {
    render() {
        return 

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

} } ReactDOM.render( , document.getElementById("root") );

React組件的props傳遞

父組件給子組件傳遞數(shù)據(jù),是通過(guò)給子組件上定義屬性,在子組件中通過(guò)this.props獲取

傳遞多個(gè)屬性:

"use strict";

import React from "react";
import ReactDOM from "react-dom";

class Me extends React.Component {
    render() {
        return 

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

} } ReactDOM.render( , document.getElementById("root") );

也可以傳遞一個(gè)對(duì)象給子組件的屬性,在子組件也要通過(guò)對(duì)象的方式去獲取

"use strict";

import React from "react";
import ReactDOM from "react-dom";

class Me extends React.Component {
    render() {
        return 

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

} } const map = { name: "編程故事", sologen: "我的故事,也許也是你的故事", url: "https://www.mi#" }; ReactDOM.render( , document.getElementById("root") );

還可以使用ES2015中的解構(gòu)賦值

"use strict";

import React from "react";
import ReactDOM from "react-dom";

class Me extends React.Component {
    render() {
        return 

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

} } const map = { name: "編程故事", sologen: "我的故事,也許也是你的故事", url: "https://www.mi#" }; ReactDOM.render( , document.getElementById("root") );

React的事件

在組件中定義事件處理方法,在組件的render()方法中定義事件監(jiān)聽(tīng)

"use strict";

import React from "react";
import ReactDOM from "react-dom";

class Me extends React.Component {

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

    render() {
        return 

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

} } const map = { name: "編程故事", sologen: "我的故事,也許也是你的故事", url: "https://www.mi#" }; ReactDOM.render( , document.getElementById("root") );

還可以使用箭頭函數(shù)直接在事件監(jiān)聽(tīng)中處理

"use strict";

import React from "react";
import ReactDOM from "react-dom";

class Me extends React.Component {

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

    render() {
        return 

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

{ alert("編程故事") }} type="button" value="按鈕"/>
} } const map = { name: "編程故事", sologen: "我的故事,也許也是你的故事", url: "https://www.mi#" }; ReactDOM.render( , document.getElementById("root") );

父組件傳遞數(shù)組給子組件遍歷

"use strict";

import React from "react";
import ReactDOM from "react-dom";

class Me extends React.Component {
    
    render() {
        return 
{this.props.data.map((item) => { return

{ alert(item.name) } }>{item.name} - {item.sologen} - {item.url}

})}
} } const map = [{ name: "編程故事", sologen: "我的故事,也許也是你的故事", url: "https://www.mi#" },{ name: "246哈", sologen: "開(kāi)心很簡(jiǎn)單", url: "https://www.246ha.com" }]; ReactDOM.render( , document.getElementById("root") );

原文鏈接:https://www.mi#/articles...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/105860.html

相關(guān)文章

  • React

    摘要:基礎(chǔ)創(chuàng)建虛擬參數(shù)元素名稱(chēng),例如參數(shù)屬性集合,例如,,,從參數(shù)開(kāi)始,表示該元素的子元素,通常這些元素通過(guò)創(chuàng)建,文本文件可以直接插入嘻嘻哈哈這是渲染器,將元素渲染到頁(yè)面中。 React簡(jiǎn)介 FeceBook開(kāi)源的一套框架,專(zhuān)注于MVC的視圖V模塊。實(shí)質(zhì)是對(duì)V視圖的一種實(shí)現(xiàn)。 React框架的設(shè)計(jì)沒(méi)有過(guò)分依賴(lài)于某個(gè)環(huán)境,它自建一套環(huán)境,就是virtual DOM(虛擬DOM)。 提供基礎(chǔ)AP...

    hlcc 評(píng)論0 收藏0
  • 【全棧React】第10天: 交互性

    摘要:我們可以使用函數(shù)構(gòu)造函數(shù)將我們的組件轉(zhuǎn)換為狀態(tài)什么是函數(shù)構(gòu)造函數(shù)在中,函數(shù)是一個(gè)在創(chuàng)建對(duì)象時(shí)運(yùn)行的函數(shù)。我們將使用構(gòu)造函數(shù)方法在對(duì)象創(chuàng)建時(shí)正確運(yùn)行對(duì)象時(shí)設(shè)置實(shí)例變量。每當(dāng)一個(gè)有一個(gè)屬性被設(shè)置時(shí),它會(huì)在該字段改變的每個(gè)時(shí)間調(diào)用函數(shù)。 本文轉(zhuǎn)載自:眾成翻譯譯者:iOSDevLog鏈接:http://www.zcfy.cc/article/3823原文:https://www.fullsta...

    馬永翠 評(píng)論0 收藏0
  • 掌握react,這一篇就夠了

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

    Enlightenment 評(píng)論0 收藏0
  • 常見(jiàn)react面試題匯總(適合中級(jí)前端)

    摘要:但在中會(huì)有些不同,包含表單元素的組件將會(huì)在中追蹤輸入的值,并且每次調(diào)用回調(diào)函數(shù)時(shí),如會(huì)更新,重新渲染組件。在構(gòu)造函數(shù)中調(diào)用的目的是什么在被調(diào)用之前,子類(lèi)是不能使用的,在中,子類(lèi)必須在中調(diào)用。將使用單個(gè)事件監(jiān)聽(tīng)器監(jiān)聽(tīng)頂層的所有事件。 已經(jīng)開(kāi)源 地址:https://github.com/nanhupatar...關(guān)注我們團(tuán)隊(duì):showImg(https://segmentfault.co...

    leone 評(píng)論0 收藏0
  • React入門(mén)看這篇就夠了

    摘要:背景介紹入門(mén)實(shí)例教程起源于的內(nèi)部項(xiàng)目,因?yàn)樵摴緦?duì)市場(chǎng)上所有框架,都不滿(mǎn)意,就決定自己寫(xiě)一套,用來(lái)架設(shè)的網(wǎng)站。做出來(lái)以后,發(fā)現(xiàn)這套東西很好用,就在年月開(kāi)源了。也就是說(shuō),通過(guò)鉤子函 react - JSX React 背景介紹 React 入門(mén)實(shí)例教程 React 起源于 Facebook 的內(nèi)部項(xiàng)目,因?yàn)樵摴緦?duì)市場(chǎng)上所有 JavaScript MVC 框架,都不滿(mǎn)意,就決定自己寫(xiě)一套...

    luckyw 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<