Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove jQuery / Bootstrap JavaScript dependency #63

Open
4 of 8 tasks
langdonx opened this issue Aug 20, 2017 · 3 comments
Open
4 of 8 tasks

Remove jQuery / Bootstrap JavaScript dependency #63

langdonx opened this issue Aug 20, 2017 · 3 comments

Comments

@langdonx
Copy link
Collaborator

langdonx commented Aug 20, 2017

The following unchecked components require jQuery and/or Bootstrap's Javascript. We should seek to remove that dependency and write components "The Angular Way".

  • Menu
  • Modal
  • Select
  • Tooltip
  • Alert
  • Pagination
  • Progress
  • Tabs
@svpace
Copy link

svpace commented Sep 22, 2017

Why? What do you expect to gain by replacing the code the good folks of the Bootstrap team already written for us? Bootstrap.js is quite small and jQuery slim is not that big either (and is pretty much standard in the projects I've been).

@langdonx
Copy link
Collaborator Author

There are countless articles on why this is a good idea. Someone has even dedicated a domain to it: http://youmightnotneedjquery.com

It mostly boils down to performance and the fact that modern browsers don't require something as complex as what jQuery offers.

It's even more unnecessary when coupling jQuery with AngularJS, considering that manual DOM manipulation in AngularJS is sort of an anti-pattern (sometimes forcing you to call $scope.$apply, which should be avoided if possible. As well, AngularJS already ships with jqLite (a version of jQuery with the bare minimum).

@IdanCo
Copy link
Owner

IdanCo commented Sep 25, 2017

@svpace i thought the same, but @langdonx points convinced me, especially the AngularJS part - I came across a few serious issues when bootstrap code was not synced with angular and a few $scope.apply were needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants