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.