Need advice about which tool to choose?Ask the StackShare community!

D3.js

1.9K
1.7K
+ 1
653
Vue.js

54.2K
44K
+ 1
1.6K
Add tool

D3.js vs Vue.js: What are the differences?

Introduction

D3.js and Vue.js are both popular JavaScript frameworks, but they serve different purposes and have distinct features. This Markdown code provides a comparison between D3.js and Vue.js, highlighting their key differences.

  1. Data Visualization: D3.js is primarily a data visualization library that allows developers to create interactive and dynamic charts, graphs, and other visualizations. It provides a low-level approach, enabling fine-grained control over the rendering process. On the other hand, Vue.js is a progressive framework for building user interfaces and is not specifically designed for data visualization. It focuses on managing the application state and efficiently updating the DOM.

  2. Component-based Architecture: Vue.js follows a component-based architecture, where the application is built using reusable and modular components. This approach promotes code reusability and maintainability. In contrast, D3.js does not have a built-in component system and instead relies on a more procedural approach, where developers directly manipulate the DOM to create visualizations. This can make code organization and component reuse less straightforward.

  3. Reactivity: Vue.js offers a reactivity system, which means that when data changes, the user interface automatically updates to reflect those changes. This behavior is achieved through the use of declarative rendering and a virtual DOM. D3.js, on the other hand, does not provide built-in reactivity. Developers need to explicitly handle data changes and update the visualizations accordingly.

  4. Learning Curve: Vue.js has a relatively gentle learning curve, especially for developers already familiar with HTML, CSS, and JavaScript. It provides clear and concise documentation, a rich ecosystem of plugins, and a straightforward API that simplifies development. D3.js, on the other hand, has a steeper learning curve due to its low-level nature and the need to understand concepts like SVG, data binding, and DOM manipulation. Mastery of D3.js often requires a deeper understanding of JavaScript and data visualization concepts.

  5. Community and Ecosystem: Vue.js has a large and active community, with numerous resources, tutorials, and plugins available. It benefits from being backed by a company (Vue.js Core Team) and has gained wide popularity in the web development community. D3.js also has an active community but is more specialized in the data visualization domain. It is widely used by data scientists, journalists, and designers for creating intricate and custom visualizations.

  6. Scope and Use Cases: Due to its data-centric focus, D3.js is particularly well-suited for complex and custom data visualizations. It provides complete control over the rendering process, enabling developers to create highly interactive and visually appealing visualizations. Vue.js, on the other hand, excels at building user interfaces and interactive applications in a more general sense. It is commonly used in developing single-page applications, dashboards, and UI-heavy projects.

In summary, the key differences between D3.js and Vue.js include their primary focus (data visualization vs. UI development), architectural approach (low-level vs. component-based), reactivity system, learning curve, community support, and scope/use cases.

Advice on D3.js and Vue.js
Needs advice
on
AngularJSAngularJSReactReact
and
Vue.jsVue.js

What is the best MVC stack to build mobile-friendly, light-weight, and fast single-page application with Spring Boot as back-end (Java)? Is Bootstrap still required to front-end layer these days?

The idea is to host on-premise initially with the potential to move to the cloud. Which combo would have minimal developer ramp-up time and low long-term maintenance costs (BAU support)?

See more
Replies (3)
Carolyne Stopa
Full Stack Developer at Contabilizei · | 10 upvotes · 598.5K views
Recommends
on
Vue.jsVue.js

React might be a good option if you're considering a mobile app for the future, because of react native. Although, Vue.js has the easiest learning curve and offers a better developer ramp-up time. Vue.js is great to build SPAs, very clean and organized and you won't have a lot of long-term maintenance problems (like AngularJS, for example). Bootstrap can still be used, but with flexbox there's no need anymore.

See more
Chaitanya Chunduri
Recommends
on
ReactReact

I recommend React because of less memory occupant compare to Angular, but this will depend on your organisation flexibility. When you use React you need to import different libraries as per your need. On the other side angular is a complete framework.

Performance-wise I vote for react js as it loads up quickly and lighter on the mobile. You can make good PWA with SSR as well.

See more
Recommends
on
ReactReact

If you are new to all three react will be a good choice considering, react-native will be useful if you want to build cross platform mobile application today or tomorrow. If you are talking about bootstrap styling framework than it's a choice you can style ur components by ur self or use bootstrap 4.0 framework. The complete stack mentioned above is platform agnostic u can run it anywhere you want be it cloud or on-premise.

See more
Needs advice
on
Vue.jsVue.jsMoment.jsMoment.js
and
ReactReact

Simple datepickers are cumbersome. For such a simple data input, I feel like it takes far too much effort. Ideally, the native input[type="date"] would just work like it does on FF and Chrome, but Safari and Edge don't handle it properly. So I'm left either having a diverging experience based on the browser or I need to choose a library to implement a datepicker since users aren't good at inputing formatted strings.

For React alone there are tons of examples to use https://reactjsexample.com/tag/date/. And then of course there's the bootstrap datepicker (https://bootstrap-datepicker.readthedocs.io/en/latest/), jQueryUI calendar picker, https://github.com/flatpickr/flatpickr, and many more.

How do you recommend going about handling date and time inputs? And then there's always moment.js, but I've observed some users getting stuck when presented with a blank text field. I'm curious to hear what's worked well for people...

See more
Replies (1)
Recommends
on
ReactReact

In my view, the upside of React is you're likely to find more existing, robust design systems (e.g. sets of components containing anything from buttons to datepickers) in the React ecosystem than Vue. UI frameworks aside, momentjs comes in when you want operate on the date(times) you get back from whatever datepicker you choose (e.g. date formatting, date match).

See more
Needs advice
on
ReactReact
and
Vue.jsVue.js

I find using Vue.js to be easier (more concise / less boilerplate) and more intuitive than writing React. However, there are a lot more readily available React components that I can just plug into my projects. I'm debating whether to use Vue.js or React for an upcoming project that I'm going to use to help teach a friend how to build an interactive frontend. Which would you recommend I use?

See more
Replies (16)
Johnny Bell
Recommends
on
ReactReact

I've used both Vue.js and React and I would stick with React. I know that Vue.js seems easier to write and its much faster to pick up however as you mentioned above React has way more ready made components you can just plugin, and the community for React is very big.

It might be a bit more of a steep learning curve for your friend to learn React over Vue.js but I think in the long run its the better option.

See more
Thomas LEVEIL
Recommends
on
Vue.jsVue.js

I chose to use Vue.js a few years ago mainly for the easy learning curve. I have no experience with React, so I won't make any comparison here. Regarding available components, I never felt locked in because of Vue when looking for components. It happens that a component I wish to use is not available as a Vue component (and nobody published any Vue wrapper for it), but in such cases I was able to quickly hack a Vue wrapper component. In the end I don't think a decision to choose one framework over another should be made solely because of the number of components available. (And not all components in either framework is maintained, bug free, documented or easy to use)

See more
Recommends
on
ReactReact

I would also go with React. The learning curve can be a little more difficult but as soon as you got the concepts it's really easy to create things. As everybody has mentioned the React community is huge and it keeps growing, anything you may need for your project there are super high probabilities that you will find it.

See more
Oguzhan Cetin
Senior Developer at Melantis · | 5 upvotes · 368.7K views
Recommends
on
ReactReact

React is great, Vue.js is also great. But I'm personally using React, because React is changing the way I look at how JavaScript should be. This is a really big plus for me. Vue is good, but it's just another alternative. Also, too many big companies are using React, that means you can trust it for big projects.

See more
Ben Shichman
Recommends
on
ReactReact

I'd have to concur that I'd advise React. In addition to the reasons mentioned, the developer pool is significantly larger (and also slightly more expensive) for React. In time, engineering costs will even out as more and more teams adopt it. The community support is fantastic, and the available components significant.

See more
Recommends
on
Vue.jsVue.js

Would start with Vue especially if you want to progress more quickly and don't want/need to spend time learning React just for the sake of it. You can always pick up React later if necessary. I would caution about using "more readily available React components" just because they exist.

See more
Recommends
on
Vue.jsVue.js
at

Both have their pro's and con's; however to agree what has been mentioned here before; Using Vue.js will be easier as it's learning curve isn't steep; plus learning Vue.js will teach you fundamentals which (in a sense) can be applied to React as well. Community support for React is indeed very big, but Vue.js is also still growing. Component wise, I wouldn't worry to much about that, writing your own components is also a good tool for learning a language.

See more
Mark Scott
Personal Development at Mark Scott · | 3 upvotes · 369.1K views
Recommends
on
Vue.jsVue.js

Having developed in both Vue.js and React, I agree with your assessment of Vue. It does feel light and easier to understand and therefore learn. Seeing that Vue has some genetic roots with React, I would say start your friend out on Vue. If they need to learn React later, that should give them a good foundation. If you have a Pluralsight subscription, look for my course on Vue.js and feel free to use the demo project as a starting point.

See more
Michael R.
Full-Stack Web Developer at STHCoders · | 3 upvotes · 367.6K views
Recommends
on
ReactReact

Anything that interacts with the Internet, websites, applications, etc., while it may be more complex to build, will be easier to maintain in the long run. React offers more flexibility, a much larger support base for knowledge and opinion, and is just as stable asVue.

To make the best comparison in my opinion, think of React as the Android OS and Vue more like iOS. While Vue may be advantageous in some cases, it is limited by constricting parameters. On the other hand, while React may be more complex and incorporate more open-source/third-party constructs, it is supported by over 50,000 npm packages and allows for the use of JSX. Which I might add, once learned, becomes second nature to employ and offers more flexibility.

See more
Recommends
on
ReactReact

Virtual dom and JSX. Vue is just a baby to the race. React has it's mobile platform version as react native . so it would be easy for you and you wont reinvent the wheel again for mobile apps.

See more
Recommends
on
ReactReactVue.jsVue.js

I would recommend both of them since Vue is a UI library and helps you to design beautiful website while react allows you to handle backend problems like comment management and onspot reloading more efficiently also react includes useState and react is a framework while vue is a library

See more
Recommends
on
ReactReact

It all depends. Vue.js is smaller, and from what I saw (benchmarks) faster. It's also slightly more intuitive and easier to grasp. React is more popular, and the adoption rate is much higher.

Again, it all depends.

If I may, my personal choice would perhaps be either React or Svelte.

See more
Rajeev Borborah
Vice President Technology at WebMD · | 1 upvotes · 367.5K views
Recommends
on
Vue.jsVue.js

We did a comparison between React, Vue and Angular and while found each capable of supporting our needs, we ended up using VueJS because of its ease of use, the ability to use templates, large and growing community and good documentation. After developing on it for a around 4 months we re-evaluated and agreed that we had made the right choice and continue to migrate our products/platform to it.

See more
S Milliken
Recommends
on
Vue.jsVue.js

As others have stated there are more canned components available for React, but your observation about it's complexity is an important one. There are architectural aspects of Vue.js that lead to cleaner more concise solutions. As React apps get bigger they become a little unwieldy. Depending on your requirements you need to weigh those competing concerns. Our team is using React, but I am beginning to question that choice as time goes on. Another consideration is that Vue.js is becoming more mature as we speak. Also as others join the project, react developers should be productive in Vue.js within days. Just my 2 cents...

See more
Recommends
on
Vue.jsVue.js

VueJS hands down. Which components do you need? Have a look at Vuetify, mature project, plenty of components ready to plug and play. If on the other side you need more customization, have a look at tailwindcss. VueJS is much cleaner and IMO will overtake React soon. It's simply a better React.

See more
Recommends
on
ReactReact

It is hard to say which is good. I've used both. Vue is easier. But I feel more comfortable with React. That is why I chose React.

See more
Decisions about D3.js and Vue.js
Hampton Catlin
VP of Engineering at Rent The Runway · | 7 upvotes · 447.7K views

Starting a new company in 2020, with a whole new stack, is a really interesting opportunity for me to look back over the last 20 years of my career with web software and make the right decision for my company.

And, I went with the most radical decision– which is to ignore "sexy" / "hype" technologies almost entirely, and go back to a stack that I first used over 15 years ago.

For my purposes, we are building a video streaming platform, where I wanted rapid customer-facing feature development, high testability, simple scaling, and ease of hiring great, experienced talent. To be clear, our web platform is NOT responsible for handling the actual bits and bytes of the video itself, that's an entirely different stack. It simply needs to manage the business rules and the customers experience of the video content.

I reviewed a lot of different technologies, but none of them seemed to fit the bill as well as Rails did! The hype train had long left the station with Rails, and the community is a little more sparse than it was previously. And, to be honest, Ruby was the language that was easiest for developers, but I find that most languages out there have adopted many of it's innovations for ease of use – or at least corrected their own.

Even with all of that, Rails still seems like the best framework for developing web applications that are no more complex than they need to be. And that's key to me, because it's very easy to go use React and Redux and GraphQL and a whole host of AWS Lamba's to power my blog... but you simply don't actually NEED that.

There are two choices I made in our stack that were new for me personally, and very different than what I would have chosen even 5 years ago.

1) Postgres - I decided to switch from MySql to Postgres for this project. I wanted to use UUID's instead of numeric primary keys, and knew I'd have a couple places where better JSON/object support would be key. Mysql remains far more popular, but almost every developer I respect has switched and preferred Postgres with a strong passion. It's not "sexy" but it's considered "better".

2) Stimulus.js - This was definitely the biggest and wildest choice to make. Stimulus is a Javascript framework by my old friend Sam Stephenson (Prototype.js, rbenv, turbolinks) and DHH, and it is a sort of radical declaration that your Javascript in the browser can be both powerful and modern AND simple. It leans heavily on the belief that HTML-is-good and that data-* attributes are good. It focuses on the actions and interactions and not on the rendering aspects. It took me a while to wrap my head around, and I still have to remind myself, that server-side-HTML is how you solve many problems with this stack, and avoid trying to re-render things just in the browser. So far, I'm happy with this choice, but it is definitely a radical departure from the current trends.

See more
neha menahil

Have you ever stuck with the question that which one is the best front-end framework for you?

With continuous web development progress, the trends of the latest front-end technologies are also continuously changing with more and more sophisticated web features. These top front-end frameworks and libraries have made your complex web tasks more flexible and efficient.

Check out top front end frameworks and their features at https://www.nmtechedge.com/2020/09/24/top-4-trending-front-end-frameworks-2020/

See more
Peter Schmalfeldt
Senior Software Engineer · | 5 upvotes · 164.1K views

I honestly think the best choice for which framework you use should come down to your team's skills. If you have one Senior Dev that is great at React, but like 3-4 mid-level devs, and a handful of junior devs that know Vue.js ... maybe look at using Vue.js a little more seriously.

Yes, there are pros and cons to framework decisions, but I honestly see a LOT of teams not even consider whether a specific framework is a good fit.

See more
Peter Schmalfeldt
Senior Software Engineer · | 4 upvotes · 155.6K views

I honestly think the best choice for which framework you use should come down to your team's skills. If you have one Senior Dev that is great at React, but like 3-4 mid-level devs, and a handful of junior devs that know Angular ... maybe look at using Angular a little more seriously.

Yes, there are pros and cons to framework decisions, but I honestly see a LOT of teams not even consider whether a specific framework is a good fit.

See more
Peter Schmalfeldt
Senior Software Engineer · | 9 upvotes · 66.8K views

I have made an extended effort to drop frameworks completely if they are not actually needed. While I still use JS Frameworks like Vue, Angular and React ( if I have too ), I see far too often devs / teams deciding to build a single page site entirely in a framework, rather than just using HTML, CSS and a little JS.

I personally feel it's important to know when a framework is a good solution, and maybe when it's overkill.

See more
Kamaleshwar BN
Senior Software Engineer at Pulley · | 10 upvotes · 651.7K views

It was easier to find people who've worked on React than Vue. Angular did not have this problem, but seemed way too bloated compared to React. Angular also brings in restrictions working within their MVC framework. React on the other hand only handles the view/rendering part and rest of the control is left to the developers. React has a very active community, support and has lots of ready-to-use plugins/libraries available.

See more
Valeriy Bykanov
Founder, CEO at X1 Group · | 4 upvotes · 426.1K views

Working on a new SaaS web/mobile app and ended up with React as our choice of Frontend JavaScript framework for SPA web version with React Native for iOS, Android, Windows clients.

The key takeaways:

  • Both frameworks can do the job quite well for us. This might be true for the majority of utility web apps being built out there as well, so there was no "wrong" decision here.

  • Vue is often cited as easier to learn and code on. But only in case your engineers never worked with either Vue or React and start learning them from scratch. In our case, we knew we'll be hiring engineers who already have experience in the framework we'll select - so it was not a big argument for Vue.

  • We're building our engineering team in Ukraine and realised we have 3(!) times more engineers with React experience on the market than having Vue experience.

  • Mobile - React Native, despite being a different framework, still shares a lot with React and it's just easier for React developers to start using React Native in days.

The strongest points for our decision:

  • React community is larger, means more/faster answers to your questions and existing components.

  • Way more experienced React engineers on the market.

  • React + React Native is a great combo if you're building web and mobile clients of the same app.

See more
Alex Guesnon
Full-stack software engineer · | 3 upvotes · 118.1K views
Chose
SvelteSvelte
over
Vue.jsVue.js

Svelte 3 is exacly what I'm looking for that Vue is not made for.

It has a iterable dom just like angular but very low overhead.

This is going to be used with the application.

for old/ lite devices . ie. * android tv, * micro linux, * possibly text based web browser for ascci and/or linux framebuffer * android go devices * android One devices

See more
Simon Reymann
Senior Fullstack Developer at QUANTUSflow Software GmbH · | 24 upvotes · 4.9M views

Our whole Vue.js frontend stack (incl. SSR) consists of the following tools:

  • Nuxt.js consisting of Vue CLI, Vue Router, vuex, Webpack and Sass (Bundler for HTML5, CSS 3), Babel (Transpiler for JavaScript),
  • Vue Styleguidist as our style guide and pool of developed Vue.js components
  • Vuetify as Material Component Framework (for fast app development)
  • TypeScript as programming language
  • Apollo / GraphQL (incl. GraphiQL) for data access layer (https://apollo.vuejs.org/)
  • ESLint, TSLint and Prettier for coding style and code analyzes
  • Jest as testing framework
  • Google Fonts and Font Awesome for typography and icon toolkit
  • NativeScript-Vue for mobile development

The main reason we have chosen Vue.js over React and AngularJS is related to the following artifacts:

  • Empowered HTML. Vue.js has many similar approaches with Angular. This helps to optimize HTML blocks handling with the use of different components.
  • Detailed documentation. Vue.js has very good documentation which can fasten learning curve for developers.
  • Adaptability. It provides a rapid switching period from other frameworks. It has similarities with Angular and React in terms of design and architecture.
  • Awesome integration. Vue.js can be used for both building single-page applications and more difficult web interfaces of apps. Smaller interactive parts can be easily integrated into the existing infrastructure with no negative effect on the entire system.
  • Large scaling. Vue.js can help to develop pretty large reusable templates.
  • Tiny size. Vue.js weights around 20KB keeping its speed and flexibility. It allows reaching much better performance in comparison to other frameworks.
See more
kazi shahin
CTO at Blubird Interactive Ltd. · | 3 upvotes · 107.6K views

I've an eCommerce platform building using Laravel, MySQL and jQuery. It's working good and if anyone become interested, I just deploy the entire source cod e in environment / Hosting. This is not a good model of course. Because everyone ask for small or large amount of change and I had to do this. Imagine when there will be 100 separate deploy and I had to manage 100 separate source. So How do I make my system architecture so that I'll have a core / base source code. To make any any change / update on specific deployment, it will be theme / plugin / extension based . Also if I introduce an API layer then I could handle the Web, Mobile App and POS as well ? Is the API should be part of source code or a individual single API and all the deployment will use that API ?

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of D3.js
Pros of Vue.js
  • 195
    Beautiful visualizations
  • 103
    Svg
  • 92
    Data-driven
  • 81
    Large set of examples
  • 61
    Data-driven documents
  • 24
    Visualization components
  • 20
    Transitions
  • 18
    Dynamic properties
  • 16
    Plugins
  • 11
    Transformation
  • 7
    Makes data interactive
  • 4
    Open Source
  • 4
    Enter and Exit
  • 4
    Components
  • 3
    Exhaustive
  • 3
    Backed by the new york times
  • 2
    Easy and beautiful
  • 1
    Highly customizable
  • 1
    Awesome Community Support
  • 1
    Simple elegance
  • 1
    Templates, force template
  • 1
    Angular 4
  • 294
    Simple and easy to start with
  • 230
    Good documentation
  • 196
    Components
  • 131
    Simple the best
  • 100
    Simplified AngularJS
  • 95
    Reactive
  • 78
    Intuitive APIs
  • 56
    Javascript
  • 52
    Changed my front end coding life
  • 48
    Configuration is smooth
  • 38
    Easy to learn
  • 36
    So much fun to use
  • 26
    Progressive
  • 22
    Virtual dom
  • 16
    Faster than bulldogs on hot tarmac
  • 12
    It's magic
  • 12
    Component is template, javascript and style in one
  • 10
    Light Weight
  • 10
    Perfomance
  • 9
    Best of Both Worlds
  • 8
    Application structure
  • 8
    Elegant design
  • 8
    Intuitive and easy to use
  • 8
    Without misleading licenses
  • 6
    Small learning curve
  • 6
    Good command line interface
  • 5
    Logicless templates
  • 5
    Single file components
  • 5
    Easy to integrate to HTML by inline-templates
  • 5
    Like Angular only quicker to get started with
  • 4
    High performance
  • 3
    Component based
  • 3
    Vuex
  • 3
    Bridge from Web Development to JS Development
  • 3
    Customer Render ending eg to HTML
  • 2
    Lots of documentation
  • 2
    Concise error messages
  • 2
    Supports several template languages
  • 2
    One-way data flow
  • 2
    Intuitive
  • 1
    GUI

Sign up to add or upvote prosMake informed product decisions

Cons of D3.js
Cons of Vue.js
  • 11
    Beginners cant understand at all
  • 6
    Complex syntax
  • 9
    Less Common Place
  • 5
    YXMLvsHTML Markup
  • 3
    Don't support fragments
  • 3
    Only support programatically multiple root nodes

Sign up to add or upvote consMake informed product decisions

What is D3.js?

It is a JavaScript library for manipulating documents based on data. Emphasises on web standards gives you the full capabilities of modern browsers without tying yourself to a proprietary framework.

What is Vue.js?

It is a library for building interactive web interfaces. It provides data-reactive components with a simple and flexible API.

Need advice about which tool to choose?Ask the StackShare community!

What companies use D3.js?
What companies use Vue.js?
Manage your open source components, licenses, and vulnerabilities
Learn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with D3.js?
What tools integrate with Vue.js?

Sign up to get full access to all the tool integrationsMake informed product decisions

Blog Posts

JavaScriptGitHubReact+12
5
4187
Vue.jsSpring BootUnity+7
2
1250
Sep 8 2017 at 2:54PM

Eventbrite-0

JavaScriptNode.jsReact+7
6
9836
What are some alternatives to D3.js and Vue.js?
three.js
It is a cross-browser JavaScript library and Application Programming Interface used to create and display animated 3D computer graphics in a web browser.
Plotly.js
It is a standalone Javascript data visualization library, and it also powers the Python and R modules named plotly in those respective ecosystems (referred to as Plotly.py and Plotly.R). It can be used to produce dozens of chart types and visualizations, including statistical charts, 3D graphs, scientific charts, SVG and tile maps, financial charts and more.
Highcharts
Highcharts currently supports line, spline, area, areaspline, column, bar, pie, scatter, angular gauges, arearange, areasplinerange, columnrange, bubble, box plot, error bars, funnel, waterfall and polar chart types.
Python
Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
Tableau
Tableau can help anyone see and understand their data. Connect to almost any database, drag and drop to create visualizations, and share with a click.
See all alternatives