How to destructure props in Vue just like {...props} in React? How to destructure props in Vue just like {...props} in React? reactjs reactjs

How to destructure props in Vue just like {...props} in React?


You can use the v-bind directive to bind all the properties of an object as props:

<svg>  <circle v-bind="circle"> </circle></svg>


Just to add to CMS answer, as this doesn't work (completely) with the given example as 'stroke-width' isn't correctly passed (stroke width needs to be kebab-case). For this to work it needs to be:

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script><div id="app">  <my-component></my-component></div><script>  Vue.component('my-component', {    template: `      <svg>        <circle v-bind="circle"> </circle>      </svg>    `,    computed: {      circle() {        return {          cx: '50%',          cy: '50%',          r: '45%',          'stroke-width': '10%'        }      }    }  })  new Vue({    el: '#app'  })</script>