Redux vs Vue.js: What are the differences?
Some of the features offered by Redux are:
- Predictable state
- Easy testing
- Works with other view layers besides React
On the other hand, Vue.js provides the following key features:
"State is predictable", "Plays well with React and others" and "State stored in a single object tree" are the key factors why developers consider Redux; whereas "Simple and easy to start with", "Good documentation" and "Components" are the primary reasons why Vue.js is favored.
Redux and Vue.js are both open source tools. It seems that Vue.js with 142K GitHub stars and 20.4K forks on GitHub has more adoption than Redux with 49.2K GitHub stars and 12.7K GitHub forks.
Sellsuki, Repro, and BrightMachine are some of the popular companies that use Vue.js, whereas Redux is used by Zapier, Clever, and WebbyLab. Vue.js has a broader approval, being mentioned in 819 company stacks & 1169 developers stacks; compared to Redux, which is listed in 1021 company stacks and 803 developer stacks.
What is Redux?
What is Vue.js?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
Sign up to add, upvote and see more consMake informed product decisions
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
I'm building a new process management tool. I decided to build with Rails as my backend, using Sidekiq for background jobs. I chose to work with these tools because I've worked with them before and know that they're able to get the job done. They may not be the sexiest tools, but they work and are reliable, which is what I was optimizing for. For data stores, I opted for PostgreSQL and Redis. Because I'm planning on offering dashboards, I wanted a SQL database instead of something like MongoDB that might work early on, but be difficult to use as soon as I want to facilitate aggregate queries.
For developing our #frontend applications, we decided to use Vue.js . Being such an easy to learn library, compared to React for example, it made everything so easy. At first we started with Polymer but the existing tooling and small community at the time made us look for alternatives.
We are phasing out jQuery and jQuery UI in favour or Vue.js and @Vue-cli so we can support building a modern, well-architectured frontend.
I recommend using Angular 2 when moving from Angular 1 if you are looking for a fully featured framework solution. Neither Vue.js nor React just work out of the box and require creating your own components from scratch as well as the kind of support architecture available in Angular 2 out of the box. However if you are looking for something lightweight to add reusable components to an existing application Vue.js and React are more ideal to that end.
I use React because it is well engineered, has a huge community behind it, and allows for modular development (allowing you to handle state management yourself). I've been using React since before 1.0 (or whatever number it was they chose after 0.X). Having said this, I'm not saying other UI libraries are worse. I've barely used the other two big ones.
If using React with a non-trivial application, I heavily recommend using Redux for state management. There is no awful magic or convoluted workflow to Redux (you might not think so when starting on it, but once the light comes on, I hope you'll agree). It's all just loosely coupled state management. Remember to export your connected components separately so you can unit test the component without redux.
I use Vue.js because I find the resulting code cleaner, more concise and easier to read.
However if you are looking for the broader community and wider corporate level adoption, go for react. Both work well and I have used both successfully. For me the preference for vue is a matter of personal taste with regards to code aesthetics.
I use Vue.js because it allows me to keep dev momentum. Vue includes many things out of the box that React doesn't include while remaining "lighter" than angular. For example: - Vue single file components include template, logic and styling out of the box. It also allows you to use language parsers such as Pug to write your component template and SCSS for styling. - Vue uses a simple Object to initialize an instance - Vue has support for transitions out of the box (say, for example, a fade in-out between component swaps, or adding an element to a list) - Vue has observers and two way binding like angular - Vue can conditionally render content in templates via template conditional tags
It really depends on your needs. Vue is most popular on Github but React has a huge demand in hiring (Mostly to convert existing angular or legacy applications to React). React is backed by Facebook and has more highly skilled contributors than Vue, though not to detract a single bit from Vue's own skilled contributors. If you're looking for developers, it's much easier to find seasoned react devs, at least as of Jul 2019. If you're a marketing or news agency that has deadlines, Vue's efficiencies may be the best, however, a large corporation may favour React since it has more support and is more of an "open slate" so to speak.
Back in 2015, my company had a back-office dashboard that was originally built in AngularJS 1. Since Angular 2 presented drastic changes we decided to rethink the options and we looked at React and Vue.js. Besides, at the time, Vue had basically only one developer, its structure (100% oriented to components) and also its backward compatibility focus (Angular 1 to 2 no more) we preferred it against React cause it seemed more straightforward, clean and with a small learning curve. Now 4-5 years later we are very happy with our choice.
This is my stack in Application & Data
My Utilities Tools
Google Analytics Postman Elasticsearch
My Devops Tools
Git GitHub GitLab npm Visual Studio Code Kibana Sentry BrowserStack
My Business Tools
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?
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.
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.
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)
I want to create a video sharing service like Youtube, which users can use to upload and watch videos. I prefer to use Vue.js for front-end. What do you suggest for the back-end? Node.js or Laravel ( PHP ) I need a good performance with high speed, and the most important thing is the ability to handle user's requests if the site's traffic increases. I want to create an algorithm that users who watch others videos earn points (randomly but in clear context) If you have anything else to improve, please let me know. For eg: If you prefer React to Vue.js. Thanks in advance
Though Redux makes encoding some interactions unnatural, the ease of debugging makes it worthwhile. Additionally, Redux makes it easy to implement saving/bookmarking/sharing just by serializing state
Redux's middleware is great for separating concerns, e.g., requests, errors, telemetry, etc.
Our reducers use immutability-helper to update state
We love functional approach to writing apps and Redux is thus the premium choice in this matter. The inner beauty of the state tree is unbeatable. We recently learned to solve common tasks via middleware. And the Redux Chrome extension is such a marvel - our developers request extra monitors just to have it nearby.
We think VueJS is great. It's the main tool used to generate the client-side UI of our updated admin system, as well as being used in other smaller projects. The possibilities that VueJS brings to the table, means that we can quickly create rich and app-like interfaces and experiences.
Our state management library of choice. Redux has a simple concept, but it's flexible enough and it's React binding library, react-redux, contains a lot of performance-optimized code to make the most out of this combo.
I have been using React/Flux since just about the beginning of React time. Redux is a great upgrade and extension of the core flux concepts, and brings immutable and strict declarative state to the apps I build.
Vue.js is my front-end framework of choice. It's light, fast, and extensible. Its simplicity and reactivity system make it an absolute pleasure to use and it has a wonderful, ever-growing community.
The PrometheanTV Client Web SDK utilizes the Redux state management library to manage the state of overlay rendering during video playback.
New and very popular. Less legacy to deal with compared to React. Great documentation. Easy to get started.