Earlier quoted context omitted.
1) @ is just a shorthand for v-on:*, like onclick,onmouseover,on submit, etc. (ie; v-on:submit is alias ed by @submit) @click="say_something('hello')" new Vue({ methods: { say_something (str) { ... } } }) 2) : is just a shorthand for v-bind (ie; v-bind:disabled="is_disabled()" is aliased by :disabled="is_disabled()"). and this basically allows you to run pure javascript code inside of it. 3) the only other syntax to…
It looks way more complicated then jsx. Why invent v-if etc when JavaScript has those built in.
2) shorter to write and simpler to read