glue
1.0.0
可能是中國第一個如此完善的移動端web components組件庫
Glue是一個基於web components構建的組件庫,可以在react,vue2,vue3,angular和html等任何前端框架中,真正做到了一個組件庫多框架運行
npm i glue-components -S import Vue from 'vue' ;
import App from './App.vue' ;
import "glue-components/dist/glue-components/glue-components.css" ;
import { applyPolyfills , defineCustomElements } from 'glue-components/loader' ;
Vue . config . productionTip = false ;
// Tell Vue to ignore all components defined in the glue-components
// package. The regex assumes all components names are prefixed
// 'test'
Vue . config . ignoredElements = [ / test-w* / ] ;
// Bind the custom elements to the window object
applyPolyfills ( ) . then ( ( ) => {
defineCustomElements ( ) ;
} ) ;
new Vue ( {
render : h => h ( App )
} ) . $mount ( '#app' ) ; render ( ) {
return (
< div >
< glue-button > </ glue-button >
</ div >
)
} import React from 'react' ;
import ReactDOM from 'react-dom' ;
import './index.css' ;
import App from './App' ;
import "glue-components/dist/glue-components/glue-components.css" ;
import registerServiceWorker from './registerServiceWorker' ;
// test-component is the name of our made up web components that we have
// published to npm:
import { applyPolyfills , defineCustomElements } from 'glue-components/loader' ;
ReactDOM . render ( < App /> , document . getElementById ( 'root' ) ) ;
registerServiceWorker ( ) ;
applyPolyfills ( ) . then ( ( ) => {
defineCustomElements ( ) ;
} ) ; render ( ) {
return (
< div >
< glue-button > </ glue-button >
</ div >
)
} import { enableProdMode } from '@angular/core' ;
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic' ;
import { AppModule } from './app/app.module' ;
import { environment } from './environments/environment' ;
// Note: loader import location set using "esmLoaderPath" within the output target config
import { defineCustomElements } from 'glue-components/loader' ;
if ( environment . production ) {
enableProdMode ( ) ;
}
platformBrowserDynamic ( ) . bootstrapModule ( AppModule )
. catch ( err => console . log ( err ) ) ;
defineCustomElements ( ) ; import { Component , ElementRef , ViewChild } from '@angular/core' ;
import 'glue-components' ;
@ Component ( {
selector : 'app-home' ,
template : `<glue-button #test></glue-button>` ,
styleUrls : [ './home.component.scss' ] ,
} )
export class HomeComponent {
@ ViewChild ( 'test' ) myGlueButtonComponent : ElementRef < HTMLTestComponentElement > ;
async onAction ( ) {
await this . myGlueButtonComponent . nativeElement . testComponentMethod ( ) ;
}
}ember install ember-cli-stencilglue 也支持按需引入、CDN 引入等方式,詳細說明見快速上手.
修改代碼請閱讀我們的開髮指南。
使用過程中發現任何問題都可以提Issue 給我們,當然,我們也非常歡迎你給我們發PR。
現代瀏覽器以及Android 4.0+, iOS 8.0+, chrome 60+, Safari 10.1+,Firefox 63+,Edge 79+
可以手機掃碼以下二維碼訪問手機端demo: 後續支持
歡迎大家加入Glue 交流群一起討論,添加下方微信並註明『加入Glue 交流群』即可
本項目基於MIT 協議,請自由地享受和參與開源。