<p>Yes, from my experience it can.</p>
<p>Regarding modular programming: Vue is rather similar to React in this matter.</p>
<p>Components can be created and treated rather similarly to the way one treats React.Component objects. While the two frameworks are different, the mindset for dealing with components is essentially the same.</p>
<p>This means that user interactions are also somewhat identical. I'm not entirely sure what you mean by &quot;complex&quot;, but these Vue components can handle events (such as clicking etc.)</p>
<p>As for unit testing, well: <a href="https://v2.vuejs.org/v2/guide/unit-testing.html" rel="nofollow noreferrer">Their guide page does a better job at explaining than I do</a>. Essentially, one can use Jasmine or other UnitTest frameworks, and the <code>Vue</code> instance is the mediator between regular ol' javascript, and the components you want to test.</p>
<p>This mediation by the <code>Vue</code> instance brings me to the final point: Vue doesn't exactly separate concerns in this regard. Most things are channeled through this instance. I haven't looked into it enough to be sure, but my guess is that it's more like a factory than a container for other things.<br />
This would make it much more concern-separated. But again, <a href="https://v2.vuejs.org/v2/guide/single-file-components.html#What-About-Separation-of-Concerns" rel="nofollow noreferrer">Vue.js knows better than I do</a>. A more in-depth explanation can be found <a href="https://medium.com/@s.molinari/templating-separation-of-concerns-or-separation-of-technology-or-something-else-123a3d41f0b4" rel="nofollow noreferrer">in this medium.com post</a></p>
<p>So, while Vue might seem more shallow at first, I find that it isn't. It's just somewhat different than the other two, but more similar to React.</p>

CC BY-SA 4.0
2019-06-12T11:40:41.343Z
2019-06-12T11:40:41.343Z
2022-09-27T22:35:34.400Z
ItamarG3
<p>For a software course about rich client Javascript applications we want students to be able to choose what framework they will use. Now to give us a little bit of control we want them to be able to choose from Vue.js, React or Angular. As far as I can see Angular and React are both almost equal in technical complexity. But Vue.Js, although it's very popular, seems more flat and shallow.</p>

<p>We want to test students if they are able to build a solution that is:</p>

<ul>
<li>Modular (components, modules, etc) </li>
<li>Has complex user interaction</li>
<li>Is tested via unit test and UI testing</li>
<li>Follows the separation of concern principle</li>
</ul>

<p>My question: Can Vue.JS compete with Angular and React based on the criteria listed above?</p>

CC BY-SA 4.0
2019-02-15T11:17:56.333Z
The perceived flatness/shallowness of Vue might be a bonus for your purposes. With a smaller but more streamlined tool, students are less likely to get lost in the intricacies of the tool itself and thus be more able to focus on what you are trying to teach.
John Coleman
CC BY-SA 4.0
2019-02-15T16:48:12.533Z
While I can completely understand not wanting to set your students up for failure with a subpar framework, 50-60 minutes with any of those (or any ones not on your list for that matter) should tell them (or you!) real quick whether or not it will cut the mustard for their purposes (or is suited to them personally: I fell in love with React immediately and to this day still cannot force myself to make a non-toy Angular app).
Jared Smith
<programming><javascript>
Angular vs React vs Vue
# Angular vs React vs Vue

(Asked by: username_0 on 2019-02-15)

For a software course about rich client Javascript applications we want students to be able to choose what framework they will use. Now to give us a little bit of control we want them to be able to choose from Vue.js, React or Angular. As far as I can see Angular and React are both almost equal in technical complexity. But Vue.Js, although it's very popular, seems more flat and shallow.

We want to test students if they are able to build a solution that is:

* Modular (components, modules, etc)
* Has complex user interaction
* Is tested via unit test and UI testing
* Follows the separation of concern principle

My question: Can Vue.JS compete with Angular and React based on the criteria listed above?

**Tags:** programming, javascript

> **Comments:**
> **username_1**: The perceived flatness/shallowness of Vue might be a bonus for your purposes. With a smaller but more streamlined tool, students are less likely to get lost in the intricacies of the tool itself and thus be more able to focus on what you are trying to teach.  
> **username_2**: While I can completely understand not wanting to set your students up for failure with a subpar framework, 50-60 minutes with any of those (or any ones not on your list for that matter) should tell them (or you!) real quick whether or not it will cut the mustard for their purposes (or is suited to them personally: I fell in love with React immediately and to this day still cannot force myself to make a non-toy Angular app).  

---

## 1 answers

### Answer by username_3 on 2019-06-12. Score: 2 | Accepted answer

Yes, from my experience it can.

Regarding modular programming: Vue is rather similar to React in this matter.

Components can be created and treated rather similarly to the way one treats React.Component objects. While the two frameworks are different, the mindset for dealing with components is essentially the same.

This means that user interactions are also somewhat identical. I'm not entirely sure what you mean by "complex", but these Vue components can handle events (such as clicking etc.)

As for unit testing, well: [Their guide page does a better job at explaining than I do](https://v2.vuejs.org/v2/guide/unit-testing.html). Essentially, one can use Jasmine or other UnitTest frameworks, and the `Vue` instance is the mediator between regular ol' javascript, and the components you want to test.

This mediation by the `Vue` instance brings me to the final point: Vue doesn't exactly separate concerns in this regard. Most things are channeled through this instance. I haven't looked into it enough to be sure, but my guess is that it's more like a factory than a container for other things.  
This would make it much more concern-separated. But again, [Vue.js knows better than I do](https://v2.vuejs.org/v2/guide/single-file-components.html#What-About-Separation-of-Concerns). A more in-depth explanation can be found [in this medium.com post](https://medium.com/@s.molinari/templating-separation-of-concerns-or-separation-of-technology-or-something-else-123a3d41f0b4)

So, while Vue might seem more shallow at first, I find that it isn't. It's just somewhat different than the other two, but more similar to React.


---

