Being overwhelmed by all the choices is a valid concern which is why I find it strange for you to be suggesting OP switches to another framework when he has already started with Vue.
https://github.com/vuejs/vue-cli
Incidentally, vue-cli predates create-react-app.
If you are planning to build a side project, or dashboard kind of stuff so you can definitely give it a try. I feel it's like jquery :) little bit more concept to grasp.
Few video tutorials I am creating, you can watch and leave your comments:-
https://www.youtube.com/watch?v=Bv3_eTttgso
https://www.youtube.com/watch?v=WSXN-p7jVIk
https://www.youtube.com/watch?v=VKLUGU7YCFc
But you could have safely skipped the "first!" comment. Being first does not make you any more superior in the front-end world than it does in a youtube comment.
My "getting started" experience with React (which I use every day) was much more rocky. Admittedly this predates create-react-app.
I don't really like Vue.js after coming from ReactJS, main reason is how hard is it to create components, which is the main attraction of React.
This is ReactJS code for a List group that has list items which are composed of buttons, can anyone post the Vue.JS equivalent code?
var Button = function(props){
return <button>{props.text}</button>
}
var ListItem = function(props){
return <div>I am a item <Button text="click me" /></div>
}
var ListGroup = React.createClass({
render: function() {
return <div>
<ListItem name="hello"/>
</div>;
}
});ReactDOM.render(
<ListGroup />,
document.getElementById('container')
);1. Create your custom component:
var btnComp = {
props: ['text'],
template: '<div>I am a button <button v-html="text"></button></div>'
}
2. Register it: new Vue({
el: 'body',
components: {
'custombtn': btnComp
}
})
3. Display it: <custombtn :text="'hello'"></custombtn>
That's anything but hard. Here: https://jsfiddle.net/v5s77r2x/.*Updated with simpler code and JSfiddle example
export default Vue.extend({
props: ['text'],
render() {
return <div>I am a button <button>{this.text}</button></div>;
}
});:-) just sayin;-)
My comment probably should have been 2 separate comments.