精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

低代碼平臺組件間通信方案復盤

開發 前端
當然還有很多方式能幫我們實現傳統組件間的通信, 那我們在低代碼組件中, 也可以參考類似的方式來實現, 但是唯一的區別是需要設計一套規則, 來保證組件間通信可以通過用戶配置的方式來運轉.

背景介紹

3年前我開發了一款零代碼搭建平臺 H5-Dooring, 主要目的是想用更低的成本, 更快的效率, 上線 web 頁面(其實是不想寫重復的代碼了,寫麻了). 好在陸陸續續折騰了3年, 目前已經可以滿足基本的頁面設計和搭建能力, 并能快速上線頁面.

之前也在社區分享了很多低代碼和零代碼的技術實現, 接下來繼續和大家聊聊低代碼平臺中組件與組件之間的通信方案設計.

可視化搭建平臺的基本能力

根據我自己設計可視化搭建平臺的經驗, 其需要具備最最基本的兩個能力:

  • 靜態頁面設計能力(也就是可以用可視化平臺制作我們想要的頁面的能力)
  • 組件交互能力(制作好靜態頁面之后, 頁面元素能具備一定的交互, 比如跳轉鏈接, 打開彈窗等)

以上的能力可以讓我們將頁面通過拖拽的方式搭建出來:

圖片圖片

雖然這已經可以滿足很多展示型的需求, 但是仍然存在局限性, 比如可視化平臺的組件與組件之間, 沒辦法相互通信.

更靈活自主的可視化搭建平臺

這里給大家舉一個實際的場景, 比如我們要做一個轉盤H5頁面, 它由轉盤組件和按鈕組件組成, 當點擊按鈕時, 轉盤開始運動:

圖片圖片

這種場景就需要轉盤組件和按鈕組件相互通信, 來實現交互功能. 所以在可視化搭建平臺中, 如果能實現組件間的通信, 那將覆蓋更多的業務場景, 從而為個人或者企業帶來更大的價值.

圖片圖片

接下來我將和大家分享一下低代碼平臺中組件間通信的幾種方案, 共大家學習參考.

組件間通信的幾種實現方案

圖片圖片

說到組件通信我們也許并不陌生, 比如在 vue 或者 React 框架中, 經常會涉及到父子組件通信以及組件與組件間的通信, 常用的方案也有很多, 比如:

  1. props/$emit
  2. 子組件向父組件傳值
  3. eventBus($emit/$on)
  4. vuex / redux
  5. $attrs/$listeners
  6. provide/inject

當然還有很多方式能幫我們實現傳統組件間的通信, 那我們在低代碼組件中, 也可以參考類似的方式來實現, 但是唯一的區別是需要設計一套規則, 來保證組件間通信可以通過用戶配置的方式來運轉.

接下來我們來分析幾種低代碼組件間的通信方案.

1.websocket

在設計組件通信方案前, 我們需全局維護一個公共的狀態, 拿 H5-Dooring可視化平臺 舉例, 我們用 redux 管理公共狀態, 組件間通信本質就是觸發公共狀態的更新:

圖片圖片

為了保證低代碼組件庫足夠純凈, 比如不應該在組件里連接 redux, 所以我們需要把 redux 觸發器 dispatch 放在頁面的全局, 這里就可以用 websocket, 在組件里觸發 socket 指令,  在頁面全局來監聽, 并觸發 dispatch :

圖片圖片

當然使用 socket 的方式仍然會讓低代碼組件庫負重前行(雖然能實現更自由的通信場景, 比如組件自更新, 生命周期回調, 控制業務鉤子等), 因為我們不得不為其搭建 socket 服務, 并且需要為其設計穩定的通信橋梁, 比如 socket 心跳連接等.

2.iframe通信 postmessage

利用 iframe 的 postmessage 等 API 雖然也能實現組件間通信, 但是我們需要設計一套通信機制, 保證 iframe 能接受組件傳送的指令, 并對外暴露共享狀態:

圖片圖片

我們從 Iframe 的通信模式可以發現它不僅可以作為中間橋梁起到通信作用, 有點類似于 eventBus的模式, 而且還可以實現頁面間的通信, 比如目前很多微前端架構的底層支持也有采用 iframe 來設計的. 但是對于更細粒度的低代碼組件來說, 有點小題大作了.

接下來給大家分享一下 iframe 通信的基本代碼實現:

// 父頁面和子頁面通信
// A.html (父)
<iframe src="http://h5.dooring.cn/h5_plus" frameborder="1" id="Bframe"></iframe>
const msg = {
    name: "H5-Dooring"
  }
window.onload = () => {
  // 自動調用必須放在onload中,通過事件調用則不用
  // let frame = document.querySelector("#Bframe").contentWindow
  let frame = window.frames[0]
  frame.postMessage(msg, "http://h5.dooring.cn/preview")
}

// B.html
window.addEventListener("message", (e) => {
  console.log(e.data)
  console.log(e.origin)
  console.log(e.source)
})

// 子頁面和父頁面通信
// A.html (父)
<iframe src="http://h5.dooring.cn/h5_plus" frameborder="1" id="Bframe"></iframe>
window.addEventListener("message", (e) => {
  console.log(e.data)
  console.log(e.origin)
  console.log(e.source)
})

// B.html
const msg = {
  name: "Dooring H5"
}
window.top.postMessage(msg, "http://h5.dooring.cn/preview")

3.Event Emitters

Event Emitters 的方式我覺得是最適合低代碼組件間通信的方案, 類似于 js 里的事件監聽機制, 我們可以給 dom 綁定監聽, 并暴露事件給用戶來實現手動觸發機制. (雖然不一定是用戶手動觸發, 也有一種情況是邏輯觸發, 比如當頁面某個組件到達某一狀態的時候, 后自動觸發事件, 來改變其他組件的狀態)

Event Emitters 類似一種觀察者模式, 我們可以利用 javascript 的設計模式來實現它, 并在組件內部來監聽或者觸發, 一個簡單的實現如下:

interface Events {
  [key: string]: Function[];
}

export class EventEmitter {
  public events: Events;
  constructor(events?: Events) {
    this.events = events || {};
  }

  public subscribe(name: string, cb: Function) {
    (this.events[name] || (this.events[name] = [])).push(cb);

    return {
      unsubscribe: () =>
        this.events[name] && this.events[name].splice(this.events[name].indexOf(cb) >>> 0, 1)
    };
  }

  public emit(name: string, ...args: any[]): void {
    (this.events[name] || []).forEach(fn => fn(...args));
  }
}

具體設計流程有點像我之前設計的 iframe 通信架構, 不過使用起來會更簡單:

圖片圖片

低代碼組件事件隊列設計

以上只實現了組件的通信, 并沒有將通信和實際的應用場景結合起來, 比如低代碼用戶需要如何操作,才能實現組件通信. 這里我之前也設計了一套模型:

圖片圖片

每個組件都有一套事件列表, 用戶可以給一個組件添加多個交互事件, 在第代碼內部通過循環遍歷來依次觸發事件隊列:

圖片圖片

事件通信就可以用上面介紹的 Event Emitters來實現, 具體的低代碼模式可以參考我之前的項目:


責任編輯:武曉燕 來源: 趣談前端
相關推薦

2023-01-05 07:39:28

2023-02-08 00:46:44

Dooring低代碼復盤

2024-03-22 08:21:48

可視化搭建平臺組件商店H5-Dooring

2024-10-17 08:39:32

2024-01-09 08:34:56

Vue3.js組件通信

2020-09-03 10:06:53

低代碼平臺編碼低代碼

2020-12-25 10:09:29

代碼開發平臺

2021-08-11 08:23:07

前端技術 iframe

2023-03-31 13:53:00

低代碼平臺選型

2021-07-26 09:00:00

開發編程工具

2020-09-08 12:51:35

低代碼開 發代碼平臺

2023-11-16 08:11:32

前端營銷系統

2021-09-24 16:30:28

無代碼低代碼機器學習

2022-07-27 09:29:13

低代碼物聯網

2021-07-05 12:36:22

低代碼編程語言開發平臺

2021-08-03 12:47:58

鴻蒙HarmonyOS應用

2022-07-27 08:40:06

父子組件VUE3

2025-03-04 08:56:31

2019-02-26 10:33:24

快應用

2023-01-07 08:09:41

零代碼Dooring組件
點贊
收藏

51CTO技術棧公眾號

精品国产1区2区| 在线免费高清一区二区三区| 欧美日韩国产免费| 国产女人18毛片| 天天干天天爱天天操| 首页欧美精品中文字幕| 久久综合久久八八| 人人妻人人澡人人爽人人精品| 免费成人高清在线视频| 亚洲一区视频在线| 日韩一区免费观看| 亚洲免费成人网| 秋霞午夜av一区二区三区| 欧美精品aaa| 久久精品三级视频| 露出调教综合另类| 深夜成人福利| 91麻豆精东视频| 91免费视频网站| 欧美亚洲精品天堂| 欧美成人一品| 日韩在线视频免费观看高清中文 | 国产精品xx| 国产精品视频看| 国产在线精品一区| 在线免费观看一级片| 日韩午夜电影| 久久777国产线看观看精品| jizz18女人高潮| 欧美在线导航| 亚洲第一av在线| 亚洲精品第三页| 日本美女久久| 色综合久久99| 北条麻妃在线视频观看| 污片在线免费观看| 一区二区中文字幕在线| 热re99久久精品国产99热| 日本国产在线观看| 国产成人午夜精品5599 | 黄色大全在线观看| 翔田千里一区二区| 26uuu日韩精品一区二区| 久久精品国产亚洲AV无码男同| 欧美影院一区| 欧美久久精品一级黑人c片| 三级影片在线观看| 9999国产精品| 久久这里只有精品视频首页| 夫妇露脸对白88av| 四季av一区二区凹凸精品| 国产一区二区三区毛片| 国产精品久久免费观看| 成人黄色av| 日韩专区在线播放| 免费在线观看黄色小视频| 国产不卡av一区二区| 亚洲欧美制服中文字幕| 亚洲午夜久久久久久久国产| 免费视频国产一区| 中文字幕在线观看日韩| 99精品中文字幕| 亚洲91精品| 精品少妇v888av| 日本一区二区欧美| 亚洲综合另类| 国产精品久久99久久| 色老头在线视频| 美国一区二区三区在线播放| 国产日韩欧美视频在线| 97精品人妻一区二区三区在线 | 国产精品一区久久久| 日韩免费av网站| 久色婷婷小香蕉久久| 91夜夜揉人人捏人人添红杏| 性生活免费网站| av一二三不卡影片| 秋霞毛片久久久久久久久| 91社区在线| 亚洲综合一区二区| 乱妇乱女熟妇熟女网站| 日本美女久久| 欧美一区二区三区色| 制服丝袜av在线| 欧美美女在线| 久久的精品视频| 欧美日韩乱国产| 美女视频黄 久久| 成人午夜电影免费在线观看| 日韩大胆视频| 最新日韩在线视频| 天天夜碰日日摸日日澡性色av| 快播电影网址老女人久久| 欧美一区二区网站| 成人在线视频免费播放| 日本不卡高清| 久久福利视频导航| 中文字幕在线观看视频网站| 麻豆专区一区二区三区四区五区| 国产精品播放| 1pondo在线播放免费| 亚洲一卡二卡三卡四卡| 另类小说色综合| 超碰成人免费| 久久激情视频久久| 毛片在线免费视频| 国产成人免费网站| 亚洲日本一区二区三区在线不卡| 91色在线看| 这里只有精品视频在线观看| 国产交换配乱淫视频免费| 欧美成人首页| 成人福利在线视频| 国产午夜在线观看| 亚洲成人资源在线| 先锋资源在线视频| 91亚洲自偷观看高清| 青青草一区二区| 欧美 日韩 国产 精品| 国产精品成人网| 国语对白做受xxxxx在线中国| 婷婷综合国产| 最新中文字幕亚洲| 国产又粗又猛又爽又| 99国产欧美久久久精品| 人妻av无码专区| 韩国三级大全久久网站| 久久精品一偷一偷国产| 精品无码一区二区三区的天堂| www.日韩av| 欧美精品久久久久久久久久久| 欧美电影院免费观看| 精品国产欧美一区二区三区成人| 亚洲毛片一区二区三区| 99精品欧美一区二区蜜桃免费| 日韩欧美猛交xxxxx无码| 国产精品麻豆| 久久高清视频免费| 99在线无码精品入口| 亚洲欧美另类久久久精品2019| 欧美成人乱码一二三四区免费| 日本女优一区| 国产精品直播网红| 在线观看黄av| 欧美精选在线播放| 人人干在线观看| 国产美女主播视频一区| 99精品一级欧美片免费播放| 天天综合在线观看| 北条麻妃一区二区三区中文字幕| 91av久久久| 成人免费一区二区三区在线观看 | 波多野结衣中文字幕一区二区三区| 玖玖精品在线视频| 538任你躁精品视频网免费| 色综合久久久888| 日本xxxx人| 日韩欧美亚洲一二三区| 人人人妻人人澡人人爽欧美一区| 日韩精品一二三区| 亚洲自拍偷拍二区| 精品视频在线观看免费观看| 欧美激情一区二区三级高清视频| 日本免费一区视频| 一本大道久久精品懂色aⅴ| 欧美福利第一页| 国精产品一区一区三区mba桃花| 黄色影视在线观看| 欧美大胆视频| 国产精品一区电影| 福利在线导航136| 亚洲人精选亚洲人成在线| 一级淫片免费看| 亚洲一线二线三线视频| 亚洲蜜桃精久久久久久久久久久久| 日韩综合小视频| www.黄色网址.com| 牛牛影视久久网| 国产99视频精品免视看7| 成人av电影观看| 91精品国产aⅴ一区二区| 亚洲欧美在线观看视频| 欧美国产成人精品| 国产人妻精品午夜福利免费| 水野朝阳av一区二区三区| 一区二区精品国产| 久久超级碰碰| 国产精自产拍久久久久久蜜| 99热99re6国产在线播放| 在线观看精品自拍私拍| 亚洲AV无码成人片在线观看| 国产精品天天看天天狠| 精品一区二区三区中文字幕| 午夜精品久久久久久久99水蜜桃| 久久久精品人妻无码专区| 久久精品国产网站| 欧美久久久久久久久久久久久| 欧美美女视频| 国产一区二区免费在线观看| 成人在线视频观看| 五月婷婷综合网| 成人黄色av片| 97在线精品| 欧美激情论坛| av毛片精品| 成人精品视频在线| 电影天堂国产精品| 久久久久久网址| 老司机午夜在线视频| 日韩精品视频在线观看免费| 国产成人精品一区二区无码呦| 日本韩国欧美三级| 日本五十路女优| 亚洲精品成人天堂一二三| 中文字幕av久久爽一区| www.av精品| 中国男女全黄大片| 国产毛片精品视频| 做a视频在线观看| 视频一区在线视频| 欧美日本视频在线观看| 激情另类综合| 男人c女人视频| 亚洲无中文字幕| 午夜精品美女久久久久av福利| 全球av集中精品导航福利| 不卡一区二区三区视频| 欧美v亚洲v综合v国产v仙踪林| 日本亚洲欧美三级| 周于希免费高清在线观看| 97欧美精品一区二区三区| 91禁在线看| 久久免费在线观看| sis001亚洲原创区| 国内精品久久久久久中文字幕| 在线视频中文字幕第一页| 久久久成人精品视频| 中文字幕在线视频区| 一区二区三区精品99久久| 国产有码在线| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 精品久久久久久久一区二区蜜臀| 国产一区二区三区四区视频| 欧美日本一区二区| 一本色道久久综合精品婷婷| 欧美日韩精品高清| 一区二区视频网| 8x福利精品第一导航| 国产乱码一区二区| 日韩欧美一卡二卡| 色窝窝无码一区二区三区| 亚洲激情在线观看| 青草久久伊人| 一道本无吗dⅴd在线播放一区| 电影av一区| 久久久久999| 午夜小视频在线观看| 久久久久久伊人| 特黄毛片在线观看| 国产精品xxx视频| а天堂中文最新一区二区三区| 91中文字幕在线观看| 久久超级碰碰| 国产精品久久久久久久av电影 | 国产传媒在线| 97视频在线观看免费| 丝袜诱惑一区二区| 国产精品国产亚洲伊人久久 | 精品欧美乱码久久久久久1区2区| 亚洲男人天堂久久| 亚洲精品一区av在线播放| 中文字幕日本在线观看| 欧美日韩成人在线视频| 色偷偷偷在线视频播放| 国产精品亚洲аv天堂网| 日韩三级不卡| 欧美一区免费视频| 91成人精品| 美女日批免费视频| 蜜桃精品视频在线观看| 国产精品19p| 久久久噜噜噜久久人人看| 黄色录像一级片| 亚洲超丰满肉感bbw| 亚洲免费视频二区| 精品久久国产老人久久综合| 黄色电影免费在线看| 久久躁日日躁aaaaxxxx| 校园春色亚洲| 91精品免费视频| 伊人久久大香线蕉av不卡| 伊人久久大香线蕉综合75| 亚洲高清久久| 亚洲一级免费在线观看| 成人国产亚洲欧美成人综合网| 久久久久亚洲AV成人无在| 亚洲妇熟xx妇色黄| 一级aaaa毛片| 亚洲女在线观看| 影院在线观看全集免费观看| 欧洲日韩成人av| 日本一区二区三区播放| 日韩精品久久一区二区三区| 亚洲性人人天天夜夜摸| 国产精品久久久久久久久久久久 | 国产精品国产三级国产| 美女又黄又免费的视频| 国产风韵犹存在线视精品| 91精品人妻一区二区三区| 亚洲精品久久久久久国产精华液| 在线精品一区二区三区| 久久久久久久综合日本| 国产精品不卡av| 4438亚洲最大| 久久久精品国产sm调教网站| 成人自拍视频网| 欧美亚洲国产成人精品| 一区二区三区视频免费视频观看网站| 国产精品极品美女在线观看免费| **欧美日韩在线观看| 91原创国产| 欧美激情偷拍自拍| 亚洲少妇第一页| 成人高清视频免费观看| 天堂在线资源视频| 成人美女视频在线看| 久久国产高清视频| 欧美日韩你懂得| av在线免费一区| 国产va免费精品高清在线| 草草影院在线观看| 日韩av不卡在线| 美女网站一区| 黄色免费福利视频| 成人黄色综合网站| 国产大片aaa| 精品国产一二三区| 一级成人免费视频| 在线播放国产精品二区一二区四区 | 欧美成欧美va| 7777精品伊人久久久大香线蕉| av黄色在线看| 欧美videossexotv100| 在线三级中文| 91av视频在线免费观看| 欧美性生活一级片| 久热这里只精品99re8久| 国产一区二区三区电影在线观看| 免费在线激情视频| 在线观看日韩av电影| 一本之道在线视频| 一区二区三区不卡视频| 亚洲精品国产精品国| 色综合网站在线| 97人妻精品一区二区三区| www.亚洲男人天堂| 中文字幕第80页| 999国产精品| 97超级碰碰| 偷偷www综合久久久久久久| 国产精品久久精品国产| 超碰在线观看免费版| 精品亚洲国产成av人片传媒| 91国产免费视频| 欧美午夜影院在线视频| 污污的视频网站在线观看| 91精品国产综合久久久久久漫画| 免费人成年激情视频在线观看| 中文字幕日韩一区| 日本爱爱小视频| 亚洲免费观看视频| 色一情一乱一伦一区二区三区日本| 国产成人av电影在线播放| 久久中文字幕在线观看| 欧美一级在线观看| 暖暖日本在线观看| 国产精品国模大尺度私拍| 麻豆9191精品国产| 最新中文字幕日本| 岛国av一区二区三区| 色综合888| 91网站免费看| 99热精品在线| 亚洲女同二女同志奶水| 精品成人一区二区三区四区| 亚洲女同志亚洲女同女播放| 久久精品国产一区二区电影| 卡通动漫精品一区二区三区| 噜噜噜久久亚洲精品国产品麻豆| 欧美国产激情二区三区| 二区三区在线视频| 国产美女扒开尿口久久久| 亚洲人成久久| 免费一级特黄3大片视频| 日韩午夜精品电影| 在线一区视频观看| 免费看国产曰批40分钟| 日韩美女久久久| 每日更新在线观看av| yy111111少妇影院日韩夜片|