Сложный элемент Angular (веб-компонент) или библиотека Angular

Мне нужно закодировать модуль, который будет повторно использоваться для наших различных приложений, и для этого требуется использовать маршрутизацию, формы, вкладки ... Имеет ли смысл создавать веб-компонент с использованием элементов Angular, или было бы лучше создать библиотека для этого?

Все наши текущие приложения, для которых потребуется этот модуль, сделаны на Angular, и наша компания хочет продолжать использовать Angular для наших веб-приложений, но кто знает, будем ли мы в будущем использовать React или другую JS-библиотеку или фреймворк ...

Изменить: модуль предназначен только для внутреннего использования, а не для клиента. Он будет включать в себя функции для операций CRUD на разных ресурсах, которые являются общими для всех наших приложений (типы, языки, статусы ...). Каждый из них будет представлен на вкладке, поэтому, например, на вкладке языков вы увидите таблицу с разбивкой на страницы, показывающую все языковые записи, и вы можете создавать новые языки, заполняя форму, редактировать языки и удалять их.


person Pizzicato    schedule 26.02.2019    source источник
comment
когда вы говорите, что хотите создать библиотеку, что вы планируете? Не могли бы вы уточнить, чтобы помочь мне понять   -  person Shashank Vivek    schedule 26.02.2019
comment
вопрос отредактирован! : D   -  person Pizzicato    schedule 26.02.2019


Ответы (1)


Думаю, на этот вопрос есть несколько ответов, и в конце вам нужно решить, что делать. По своему опыту я бы рекомендовал сделать обычную библиотеку Angular, а не веб-компонент. Это причины:

1) Это просто меньше работы, и, поскольку ваша компания переходит на Angular и не планирует ничего менять, я определенно упростил бы задачу / избежал лишней работы.

2) Развертывание, скорее всего, усложняется при использовании независимого веб-компонента.

3) Вероятность того, что вы по ошибке реализуете что-то специфическое для Angular, которое нельзя использовать в других фреймворках без дополнительной работы, высока и в любом случае сделает невозможным повторное использование вашей библиотеки для других фреймворков.

4) Вы говорите, что это сложный модуль. В библиотеке вы можете легко разделить ее на несколько компонентов / служб. Хотя вы можете сделать это и в независимом веб-компоненте, это всегда дополнительная работа.

5) И наконец: если ваша компания решит использовать другой фреймворк, кроме Angular, это будет огромным шагом, поскольку вы более или менее все переписываете! Если вы сделаете такой шаг, всегда разумно изменить подходы, пользовательский опыт и все такое. И это, скорее всего, приведет к решению, что ваш веб-компонент либо требует серьезного рефакторинга, либо больше не должен использовать Angular, либо он устарел.

Мне кажется, что дополнительная работа не принесет вам пользы, если вы создадите независимый веб-компонент. Однако: если вы обнаружите реальную выгоду от создания независимого веб-компонента, за который кто-то (ваш начальник или клиент) готов платить, вам следует выбрать этот вариант.

person Jeremy Benks    schedule 26.02.2019
comment
Привет! Спасибо за Ваш ответ. Извините, я не указал, что это будет библиотека Angular, которая включает в себя все эти функции (маршрутизация и т. Д.) - person Pizzicato; 26.02.2019
comment
Итак, возникает вопрос: следует ли мне использовать веб-компонент, который использует Angular, но полностью не зависит от того, где он используется, и может использоваться из другой библиотеки или обычной библиотеки Angular, которую вы просто добавляете в приложения, это зависит от того, что приложение использует Угловой тоже? - person Jeremy Benks; 26.02.2019
comment
Да, но добавление этого довольно сложного модуля - person Pizzicato; 26.02.2019
comment
Понятно. Я обновил свой ответ. Я рекомендую использовать обычную библиотеку Angular, так как это просто меньше работы. - person Jeremy Benks; 26.02.2019