В чем разница между «ng-bootstrap» и «ngx-bootstrap»?

231

В чем разница между "ng-bootstrap" и "ngx-bootstrap"? Они связаны друг с другом? Или они просто параллельные реализации?

Кто-то работал с ними обоими и может дать / объяснить плюсы и минусы обоих?

Под «ng-bootstrap» я имею в виду https://ng-bootstrap.github.io/#/home и

под "ngx-bootstrap" я имею в виду http://valor-software.com/ngx-bootstrap/ .

Оба связаны с Angular 4 ( не с AngularJS! ) И Bootstrap 4.

Обратите внимание, что это не повторяющийся вопрос о разнице между ngx-bootstrap и ng2 bootstrap? ,

wolfrevo
источник
17
ngx-bootstrapsuppprts bootstrap 3 & 4, тогда как ng-bootstrap(ui-bootstrap в AngularJs) поддерживает только
developer033
1
я думаю, что ответ @snorkpete заслуживает того, чтобы его можно было установить как правильный ответ, он нашел время, чтобы найти ответ и написать его. Это хорошая культура, чтобы вернуться и прочитать ответы на свой вопрос, которые вы поместили в stackoverflow, а затем просмотреть их, и если вы удовлетворены одним из них, выберите его в качестве правильного ответа
hossein bakhtiari

Ответы:

213

ng-bootstrap и ngx-bootstrap - это два разных проекта двух разных проектных групп, которые пытаются более или менее выполнить одно и то же - позволяя вам использовать Bootstrap в Angular (2+) без использования jQuery.

Они оба перестраивают компоненты Bootstrap, используя только Angular (без jQuery). Основные различия заключаются в том, какую версию Bootstrap они поддерживают.

  • ngx-bootstrap поддерживает Bootstrap 3 и 4.
  • ng-bootstrap поддерживает Bootstrap 4 и требует Angular 5+.

Это означает, что если вам нужно использовать Bootstrap версии 3, тогда ngx-bootstrap - ваш единственный реальный выбор из двух. Если вы можете использовать Bootstrap 4, то можете выбирать между двумя проектами.

Другое (потенциально значительное) отличие - команды, стоящие за проектами. Ключевым моментом, который следует отметить в этом отношении, является то, что команда, стоящая за ng-bootstrap, также отвечала за angular-ui-bootstrap - версию AngularJS (т.е. 1.x) библиотеки Bootstrap.

snorkpete
источник
3
Это вопрос для двух командных лидеров. Если смотреть со стороны, у них немного другие цели, так что я думаю, это как-то связано с этим, но это только предположение с моей стороны
snorkpete
Будет ли проблемой, если мы включим обе библиотеки в наш угловой проект? Если да, то какие проблемы ожидаются?
РИТЦ ХАВИ
вероятно, возможно, но кажется излишним. Если вам все равно, и вы используете Bootstrap 4, просто выберите один (случайным образом, если нужно).
snorkpete
38

Я думал о том, что использовать для моего проекта, а затем, сравнив оба проекта, я думаю, что ngx-bootstrap от valor-software - лучший вариант, поскольку в его модальный компонент встроена анимация. Ng-bootstrap анимация по-прежнему отсутствует, модальное всплывающее окно без анимации является большим обломом. Другая причина в том, что Ng-bootstrap все еще находится в бета-версии, и я не смог использовать его для своего производственного приложения по сравнению с ngx-bootstrap, который уже выпустил версию-кандидата (22.12.2017). Тем не менее, я желаю обоим проектам удачи и, надеюсь, придумаю надежные решения.

Дильшан Лиянэйдж
источник
3
Теперь доступен Ng-bootstrap 1.0.0, и компилятор AOT собирается без проблем. См github.com/ng-bootstrap/ng-bootstrap/blob/master/CHANGELOG.md
Stevethemacguy
16

Согласитесь с @Dilshan. Я также принял решение выбрать ngx-bootstrap для нашего нового продукта. После некоторых исследований я обнаружил, что ngx более зрелый и стабильный для производства. ng-bootstrap находится в стадии разработки.

Хороший ресурс для справки, CoreUI.io имеет полнофункциональный пример проекта CoreUI + Angular 5.x + ngx-bootstrap . Я на самом деле узнал ngx из этого проекта. Вы можете просмотреть его предварительный просмотр или загрузить пакет проекта.

Цзипина
источник
8
Зависит от того, как вы определяете «зрелый», поскольку у ngx-bootstrap нет ни одного теста ни на что. Где, как у ng-bootstrap, похоже, есть тест на все.
Рики Рунге
Приятно знать, спасибо, что поделились. Я считаю, что ng-bootstrap - верный путь. Я упомянул зрелость только потому, что он был выпущен неделю назад. («Эта библиотека находится в стадии разработки ...»)
Jiping
4
В сегодняшней открытой экосистеме с открытым исходным кодом «зрелый» теперь означает «выпущенный более 2 месяцев назад». ;)
Эрик Сойке
9

Я использовал как ngx-bootstrap (от Valor), так и ng-bootstrap (от ng-boostrap). Вот мои два цента уникальных функций, которые вы получаете от них:

NGX-самозагрузка:

  1. Встроенная поддержка анимации практически во всем (модалы, аккордеон, коллапс, выпадающий список, средство выбора даты ...)
  2. Лучшая модальная поддержка (вложенные модалы, модал как услуга, модал как шаблон)
  3. Сортируемый компонент (с функцией перетаскивания)

нг-самозагрузка:

  1. Функция Nav (Tabset устарела)
  2. Компонент Встроенный тост
  3. Размер пакета почти в два раза больше, чем у ngx-bootstrap (Minified + Gzipped)

Вы также можете сравнить их количество загрузок npm с npmtrends .

[Примечание: мой ответ основан на текущей последней версии, т.е. ngx-bootstrap v5.5.0 и ng-boostrap v6.0.0]

Имтиаз Шакил Сиддик
источник
7

Одно из различий заключается в формате, используемом их сборщиком дат. ng-bootstrap использует объект, но ngx-bootstrap будет принимать строку, которая намного проще в использовании.

BBaysinger
источник
7

ng-bootstrap, похоже, не поддерживается - верхний запрос - это appendTo body, и сопровождающий говорит, что он не работает над проектом.

Я все переключаю на ngx-bootstrap

Стив
источник
7

Упомянутый в вопросе ng-bootstrap (на https://ng-bootstrap.github.io ) - это не пакет npm ng-bootstrap.

Вместо этого, пакет npm - это @ ng-bootstrap / ng-bootstrap

Он разработан другой командой.

$ npm view @ ng-bootstrap / ng-bootstrap

@ ng-bootstrap / ng-bootstrap @ 3.2.0 | MIT | deps: 1 | версии: 61 Bootstrap с угловым питанием https://github.com/ng-bootstrap/ng-bootstrap#readme

Пакет npm ng-bootstrap действительно выглядит как старая версия ngx-bootstrap.

Тор
источник
4

Не столько ответ, сколько расширенный комментарий ...

Я не уверен, что команды независимы. Бег npm view ngx-bootstrapиnpm view ng-bootstrap покажите, что оба были опубликованы с одной и той же учетной записью электронной почты.

Я думаю, что две команды связаны между собой.

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>
Zarepheth
источник
9
ng-bootstrap - это старое название ngx-bootstrap . Для ng-bootstrap.github.io имя пакета npm равно @ ng-bootstrap / ng-bootstrap , то естьnpm view @ng-bootstrap/ng-bootstrap
atao
1
больше похоже на того парня "valorkin" из ng-bootstrap, который открыл собственную команду "valor-software" для ngx
Facundo Colombier