Answers.Body: <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>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-12T11:40:41.343Z
Answers.LastActivityDate: 2019-06-12T11:40:41.343Z
Answers.LastEditDate: 2022-09-27T22:35:34.400Z
Answers.UserDisplayName: ItamarG3
Body: <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>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-02-15T11:17:56.333Z
Comments.Text: 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.
Comments.UserDisplayName: John Coleman
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2019-02-15T16:48:12.533Z
Comments.Text: 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).
Comments.UserDisplayName: Jared Smith
Tags: <programming><javascript>
Title: Angular vs React vs Vue
ThreadText: # 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.
  
  
  ---
  
  