日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

什么是 pubsub?

PubSubJS 是 一個利用 JAVAScript 進行發(fā)布/訂閱式通信的庫。

gitHub:https://github.com/mroderick/PubSubJS

 

在React中使用PubSubJS進行組件通信

 

主要特征

  • 無依賴
  • 同步解耦
  • 與ES3兼容。PubSubJS應該能夠在任何可以執(zhí)行JavaScript的地方運行。瀏覽器,服務器,電子書閱讀器,舊手機,游戲機。
  • AMD / CommonJS模塊支持
  • 不修改訂閱者(jQuery自定義事件修改訂閱者)
  • 易于理解和使用(由于同步解耦)
  • 小(ish),少于1kb,已壓縮并壓縮

 

下載引入

通過CDN方式:

  • http://www.jsdelivr.com/#!pubsubjs
  • https://cdnjs.com/libraries/pubsub-js
  • https://unpkg.com/pubsub-js
<script src="https://unpkg.com/pubsub-js"></script><script>console.log(PubSub)</script>
在React中使用PubSubJS進行組件通信

 

npm:

npm install pubsub-js

yarn:

yarn add pubsub-js

import PubSub from 'pubsub-js'// orconst PubSub = require('pubsub-js')

 

基本例子

通過PubSub變量的 publish(id, data) 方法發(fā)布,并且傳遞需要交流的信息。

id:發(fā)布的消息ID 為pubsub-js提供辨識,唯一性,不可重復

data: 發(fā)布消息傳遞的參數,如果要傳遞多個參數,請傳遞對象類型

在React中使用PubSubJS進行組件通信

 

發(fā)布完消息之后,就可以開始訂閱了

通過 PubSub.subscribe(id, callback(message, data){}) 訂閱消息

id:對應之前 publish的 id

callback: 回調函數,第一個參數為 id , 第二個參數為 publish(id, data) 中 data 傳遞的參數

 

在 react 中簡單使用

實現一個父組件中包含兩個兄弟組件,它們分別是 search 搜索組件,以及根據 search 組件搜索結果的不同 ,Result 組件進行不同的響應。

父組件:

    render () {        return (            <div className="App">                <Search />                <Result />            </div>          )    }

Search組件

import React, { Component }from 'react'import PubSub from 'pubsub-js'export default class Search extends Component {    handleSearch () {        const searchName = this.input.value.trim()        // 發(fā)布 search、傳遞用戶在搜索框中輸入的結果        PubSub.publish('search', searchName)     }    render () {        return (           <div>                <input type="text" name="search" ref={input => this.input = input} />                <button onClick={this.handleSearch.bind(this)}>搜索</button>           </div>        )    }}

 

在React中使用PubSubJS進行組件通信

 

Result 組件

import React, { Component }from 'react'import PubSub from 'pubsub-js'export default class Search extends Component {    state = { searchName: null }       componentDidMount () {        // 訂閱 search 消息, 并根據輸入結果進行不同處理        PubSub.subscribe('search', (msg, data) => {            console.log('msg:', msg)            console.log('data:', data)            this.setState({ searchName: data })        })    }    render () {        return (        <div>{this.state.searchName}</div>        )    }}

 

在React中使用PubSubJS進行組件通信

 

 

在React中使用PubSubJS進行組件通信

 

 

總結

PubSubJS 可以讓我們很輕松的處理不同組件之間的通信,同時不足 1k 的體積也不同對項目造成什么負擔。

不只是ReactPubSubJS也適用于 Vue 等其它框架項目。

官方文檔傳送門:https://github.com/mroderick/PubSubJS

源碼傳送門:https://unpkg.com/pubsub-js@1.7.0/src/pubsub.js

分享到:
標簽:React
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰(zhàn)2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定