Qual è la differenza tra "ng-bootstrap" e "ngx-bootstrap"?


231

Qual è la differenza tra "ng-bootstrap" e "ngx-bootstrap"? Sono collegati tra loro? O sono semplicemente implementazioni simultanee?

Qualcuno ha lavorato con entrambi e può dare / spiegare pro e contro di entrambi?

Con "ng-bootstrap" intendo https://ng-bootstrap.github.io/#/home e

con "ngx-bootstrap" intendo http://valor-software.com/ngx-bootstrap/ .

Entrambi relativi ad Angular 4 ( non ad AngularJS! ) E Bootstrap 4.

Si noti che questa non è una domanda duplicata di differenza tra ngx-bootstrap e ng2 bootstrap? .


17
ngx-bootstrapsuppprts bootstrap 3 & 4, mentre ng-bootstrap(ui-bootstrap in AngularJs) supporta solo bootstrap 4.
— developer033

1
Penso che la risposta di @snorkpete meriti di essere impostata come Risposta corretta, ha impiegato del tempo per trovare la risposta e scriverla. è una buona cultura tornare a leggere le risposte alla tua domanda che hai posto in StackOverflow, quindi rivederle e, se sei soddisfatto, scegli quella come risposta corretta
— hossein bakhtiari

Risposte:


213

ng-bootstrap e ngx-bootstrap sono due progetti diversi di due diversi team di progetto che stanno cercando di ottenere più o meno la stessa cosa, consentendo di utilizzare Bootstrap in Angular (2+) senza l'uso di jQuery.

Stanno entrambi ricostruendo i componenti Bootstrap usando solo Angular (no jQuery). Le differenze principali riguardano la versione di Bootstrap che supportano.

  • ngx-bootstrap supporta Bootstrap 3 e 4.
  • ng-bootstrap supporta Bootstrap 4 e richiede Angular 5+.

Questo significa che se devi usare Bootstrap versione 3, allora ngx-bootstrap è la tua unica vera opzione. Se puoi usare Bootstrap 4, puoi scegliere tra i due progetti.

L'altra differenza (potenzialmente significativa) sono i team dietro i progetti. Il punto chiave da notare a questo proposito è che il team dietro ng-bootstrap era anche responsabile per angular-ui-bootstrap - la versione AngularJS (cioè 1.x) della libreria Bootstrap.


3
Questa è una domanda per i due capi squadra. Dall'esterno guardando dentro, hanno obiettivi leggermente diversi, quindi immagino che abbia qualcosa a che fare con esso, ma è solo una congettura da parte mia
— snorkpete

Sarebbe un problema se includessimo entrambe le librerie nel nostro progetto angolare? In tal caso, che tipo di problemi sono previsti?
— RITZ XAVI,

probabilmente possibile, ma sembra eccessivo. Se non ti interessa molto e stai usando Bootstrap 4, scegline uno (a caso se necessario).
— snorkpete,

38

Stavo pensando a cosa usare per il mio progetto e poi, dopo aver confrontato entrambi i progetti, penso che ngx-bootstrap di valor-software sia un'opzione migliore poiché ha un'animazione integrata nella sua componente modale. Ng-bootstrap l'animazione non è ancora presente, una comparsa modale senza animazione è un grosso problema. Un altro motivo è che Ng-bootstrap è ancora in versione beta e non sono stato in grado di utilizzarlo per la mia applicazione di produzione quando ho confrontato con ngx-bootstrap che ha già una versione candidata al rilascio (22.12.2017). Tuttavia, auguro buona fortuna a entrambi i progetti e spero di trovare soluzioni solide.


3
Ng-bootstrap 1.0.0 è ora disponibile e il compilatore AOT viene compilato senza problemi. Vedi github.com/ng-bootstrap/ng-bootstrap/blob/master/CHANGELOG.md
— Stevethemacguy

16

Concordo con @Dilshan. Ho anche deciso di scegliere ngx-bootstrap per il nostro nuovo prodotto. Dopo alcune ricerche, ho scoperto che ngx è più maturo e stabile per la produzione. ng-bootstrap è in fase di sviluppo.

Una buona risorsa di riferimento, CoreUI.io ha un progetto di esempio CoreUI + Angular 5.x + ngx-bootstrap completamente funzionale . In realtà ho imparato ngx da questo progetto. Puoi sfogliare l'anteprima dal vivo o scaricare il pacchetto di progetto.


8
Dipende da come definisci "maturo", poiché ngx-bootstrap non ha nemmeno un singolo test su nulla. Dove come ng-bootstrap sembra avere test su tutto.
— Ricki Runge,

Buono a sapersi, grazie per averlo condiviso. Credo che ng-bootstrap sia la strada giusta da percorrere. Ho citato la maturità solo perché è stato appena rilasciato una settimana fa. ("questa biblioteca è un lavoro in corso ...")
— Jiping

4
Nell'odierno ecosistema front-end open source, ormai maturo sembra significare "rilasciato più di 2 mesi fa". ;)
— Eric Soyke,

9

Ho usato sia ngx-bootstrap (di Valor) che ng-bootstrap (di ng-boostrap). Ecco i miei due centesimi delle caratteristiche uniche che ottieni da loro:

NGX-bootstrap:

  1. Supporto di animazione integrato su quasi tutto (modali, fisarmonica, collpase, menu a discesa, datepicker ...)
  2. Migliore supporto modale (modali nidificati, modale come servizio, modale come modello)
  3. Componente ordinabile (con funzione Drag & Drop)

ng-bootstrap:

  1. Funzione di navigazione (il tablet è stato reso obsoleto)
  2. Componente Toast incorporato
  3. La dimensione del pacchetto è quasi la metà rispetto a ngx-bootstrap (Minified + Gzipped)

Puoi anche confrontare i loro conteggi di download di npm con npmtrends .

[Nota: la mia risposta si basa sull'ultima versione attuale, ovvero ngx-bootstrap v5.5.0 e ng-boostrap v6.0.0]


7

Una differenza è nel formato utilizzato dal loro selettore di date. ng-bootstrap usa un oggetto, ma ngx-bootstrap prenderà una stringa che è molto più facile da usare.


7

ng-bootstrap non sembra essere supportato - la richiesta principale è appendTo body e il manutentore dice che non sta lavorando al progetto.

Sto cambiando tutto in ngx-bootstrap


7

Il ng-bootstrap indicato nella domanda (quello su https://ng-bootstrap.github.io ) non è il pacchetto npm ng-bootstrap.

Invece, il pacchetto npm è @ ng-bootstrap / ng-bootstrap

È sviluppato da un team diverso.

$ npm view @ ng-bootstrap / ng-bootstrap

@ ng-bootstrap / ng-bootstrap @ 3.2.0 | MIT | deps: 1 | versioni: 61 Bootstrap con alimentazione angolare https://github.com/ng-bootstrap/ng-bootstrap#readme

Il pacchetto npm ng-bootstrap sembra essere davvero una versione precedente di ngx-bootstrap.


4

Non tanto una risposta quanto un commento esteso ...

Non sono così sicuro che le squadre siano indipendenti. In esecuzione npm view ngx-bootstrape npm view ng-bootstrapmostra che entrambi sono stati pubblicati con lo stesso account e-mail.

Sto pensando che le due squadre siano imparentate.

npm view ngx -bootstrap

C:\:
17:07:25.16>npm view ngx-bootstrap

ngx-bootstrap@3.0.1 | MIT | deps: none | versions: 40
Native Angular Bootstrap Components
https://github.com/valor-software/ngx-bootstrap#readme

keywords: angular, bootstap, ng, ng2, angular2, twitter-bootstrap

dist
.tarball https://registry.npmjs.org/ngx-bootstrap/-/ngx-    bootstrap-3.0.1.tgz
.shasum: e98d2fc6340f32a9d358cd08e8fda7dcb23bdab3
.integrity: sha512-ni91yYtn8ldgf/pxrlwl9lkVcLURGzopSpJnEbbgG1v1EZWTobI8y7J3mx4Kxptkn0EeiQwnLel67G7XJSox4A==
.unpackedSize: 8.4 MB

maintainers:
- valorkin <valorkin@gmail.com>

dist-tags:
latest: 3.0.1       next: 3.0.1         test: 0.0.0-test.0

published a month ago by valorkin <valorkin@gmail.com>

npm view ng -bootstrap

C:\:
17:16:42.36>npm view ng-bootstrap

ng-bootstrap@1.6.3 | MIT | deps: 1 | versions: 8
Native Angular Bootstrap Components
https://github.com/valor-software/ngx-bootstrap#readme

keywords: ng, ng-bootstap, angular, angular2, bootstrap, twitter-bootstrap

dist
.tarball https://registry.npmjs.org/ng-bootstrap/-/ng-bootstrap-1.6.3.tgz
.shasum: d41fd42154c0593422cb83c473a3828aa7525bf5

dependencies:
moment: 2.18.1

maintainers:
- pkozlowski_os <pkozlowski.opensource@gmail.com>
- ng-bootstrap <foxandxss@gmail.com>

dist-tags:
beta: 1.1.16-3  latest: 1.6.3

published a year ago by valorkin <valorkin@gmail.com>

9
ng-bootstrap è un vecchio nome di ngx-bootstrap . Per ng-bootstrap.github.io , il nome del pacchetto npm è @ ng-bootstrap / ng-bootstrap , ovveronpm view @ng-bootstrap/ng-bootstrap
— atao

1
sembra più che quel ragazzo "valorkin" provenisse da ng-bootstrap e abbia aperto il suo team "valor-software" per ngx
— Facundo Colombier,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.