欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

React中如何引入Angular組件詳解

 更新時間:2018年08月09日 09:07:55   作者:Phodal全棧工程師  
這篇文章主要給大家介紹了關于React中如何引入Angular組件的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

為了在我的編輯器中使用 Angular,我用 Angular 編寫了一個重命名功能。而為了使用它,我得再次使用一次 customEvent ,而在這個微前端架構的系統(tǒng)中,其事件通訊機制已經(jīng)相當?shù)膹碗s。在這部分的代碼進一步惡化之前,我得嘗試有沒有別的方式。于是,我想到了之前在其它組件中使用的 Web Components 技術,而 Angular 6 正好可以支持。

下面話不多說了,來一起看看詳細的介紹吧

HTML 中引入 Web Components

我所需要做的事情也相當?shù)暮唵危恍枰獙⑽业慕M件注冊為一個 customElements,稍微改一下 app.module.ts 文件。在這種情況之下,我們就可以構建出獨立于框架的組件。

如下是原始的 module 文件:

@NgModule({
 declarations: [AppComponent],
 imports: [BrowserModule],
 bootstrap: [AppComponent]
})
export class AppModule { }

如下則是新的 module 文件:

@NgModule({
 declarations: [InteractBar],
 imports: [BrowserModule],
 entryComponents: [InteractBar]
})
export class AppModule {
 constructor(private injector: Injector) {
 const interactBar = createCustomElement(InteractBar, {injector});
 customElements.define('interact-bar', interactBar);
 }
}

然后,只需要就可以在 HTML 中傳遞參數(shù): <interact-bar filename="phodal.md"></interact-bar> ,或者監(jiān)聽對應的 @Output 事件:

const bar = document.querySelector('interact-bar');
bar.addEventListener('action', (event: any) => {
 ...
})

事實證明,使用 Angular 構建的 Web Components 組件是可以用的。于是,我便想,不如在 React 中引入 Angular 組件吧。

React 中引入 Angular 組件

于是,便使用 create-react-app 創(chuàng)建了一個 DEMO,然后引入組件:

<div className="App">
 <header className="App-header">
 <img src={logo} className="App-logo" alt="logo" />
 <h1 className="App-title">Welcome to React</h1>
 </header>
 <p className="App-intro">
 To get started, edit <code>src/App.js</code> and save to reload.
  <interact-bar filename="phodal.com" onAction={this.action}></interact-bar>
 </p>
</div>

嗯,it works。至少 filename 參數(shù)可以成功地傳遞到 Angular 代碼中,而 action 在當前似乎還不行。但是毫無疑問,它在未來是可用的。

Demo 見: https://phodal.github.io/wc-angular-demo/

Repo 見: https://github.com/phodal/wc-angular-demo

這個時候,我遇到了一個問題,我使用 Angular 構建的這個組件,大概是有 257kb。這個大小的組件,但是有點恐怖。

Web Components 框架構建組件

在那些微前端相關的文章中,我們指出類似于 Stencil 的形式,將組件直接構建成 Web Components 形式的組件,隨后在對應的諸如,如 React 或者 Angular 中直接引用。

如下是一個使用 Stencil 寫的 Web Components 的例子:

@Component({
 tag: 'phodit-header',
 styleUrl: 'phodit-header.css'
})
export class PhoditHeader {
 @State() showCloseHeader = false;

 componentDidLoad() {...}
 handleClick() {...}

 render() {
 if (this.showCloseHeader) {...}
 return (<div></div>);
 }
}

使用它構建出來的組件,大概可以在 30kb 左右的大小。

不論是不是一個經(jīng)量級的方案,但是它至少證明了組件復用的可行性。

總結

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • react腳手架配置代理的實現(xiàn)

    react腳手架配置代理的實現(xiàn)

    本文主要介紹了react腳手架配置代理的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 基于antd的autocomplete的二次封裝查詢示例

    基于antd的autocomplete的二次封裝查詢示例

    這篇文章主要為大家介紹了基于antd的autocomplete的二次封裝查詢示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • react實現(xiàn)頭部導航,選中狀態(tài)底部出現(xiàn)藍色條塊問題

    react實現(xiàn)頭部導航,選中狀態(tài)底部出現(xiàn)藍色條塊問題

    這篇文章主要介紹了react實現(xiàn)頭部導航,選中狀態(tài)底部出現(xiàn)藍色條塊問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • React 組件的狀態(tài)下移和內(nèi)容提升的操作方法

    React 組件的狀態(tài)下移和內(nèi)容提升的操作方法

    這篇文章主要介紹了React 組件的狀態(tài)下移和內(nèi)容提升,通過代碼講解了渲染性能的組件問題結合實例代碼給大家講解的非常詳細,需要的朋友可以參考下
    2022-11-11
  • React Native 圖片查看組件的方法

    React Native 圖片查看組件的方法

    這篇文章主要介紹了React Native 圖片查看組件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • React函數(shù)組件hook原理及構建hook鏈表算法詳情

    React函數(shù)組件hook原理及構建hook鏈表算法詳情

    這篇文章主要介紹了React函數(shù)組件hook原理及構建hook鏈表算法詳情,每一個?hook?函數(shù)都有對應的?hook?對象保存狀態(tài)信息,更多詳細分析,需要的朋友可以參考一下
    2022-07-07
  • 基于React-Dropzone開發(fā)上傳組件功能(實例演示)

    基于React-Dropzone開發(fā)上傳組件功能(實例演示)

    這篇文章主要介紹了基于React-Dropzone開發(fā)上傳組件,主要講述的是在React-Flask框架上開發(fā)上傳組件的技巧,需要的朋友可以參考下
    2021-08-08
  • React Hook 'useEffect' is called in function報錯解決

    React Hook 'useEffect' is call

    這篇文章主要為大家介紹了React Hook 'useEffect' is called in function報錯解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12
  • React實現(xiàn)分頁效果

    React實現(xiàn)分頁效果

    這篇文章主要為大家詳細介紹了React實現(xiàn)分頁效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • react-router?v6新特性總結示例詳解

    react-router?v6新特性總結示例詳解

    在V6版本中,<Switch>組件被替換成<Routes>組件,同時,component屬性被element屬性替換,這篇文章主要介紹了react-router?v6新特性總結,需要的朋友可以參考下
    2022-12-12

最新評論