在React中,我可以像这样分解props :

function MyComponent() {
  const myProp = {
    cx: '50%',
    cy: '50%',
    r: '45%',
    'stroke-width': '10%'
  }
  return ( 
    <svg>
      <circle {...myProp}> </circle>
    </svg>
  )
}

在Vue中,我该如何做同样的事情?我目前在VueJS中的详细版本如下:

<svg>
  <circle :cx="circle.cx" :cy="circle.cy" :r="circle.r" :stroke-width="circle.strokeWidth"> </circle>
</svg>

computed: {
  circle() {
    return {
      cx: '50%',
      cy: '50%',
      r: '45%',
      strokeWidth: '10%'
    }
  }
}

React:https://jsfiddle.net/as0p2hgw/中的可运行代码段

推荐答案

只需添加到CMS答案中,因为这对给定示例不起作用(完全),因为"笔划宽度"没有正确传递(笔划宽度需要是烤肉串大小写).要使其发挥作用,需要:

<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>

Vue.js相关问答推荐

vue3中的转换可以在滑入但不能滑出时工作

用于循环数组的模板元素内的条件渲染

使用内部方法创建计算(computed)属性是否合法?

如何通过 setup() 发出多个参数?

超出最大调用堆栈大小 - Vue路由

我可以在打印 HTML 页面时使用作用域 CSS 吗? (使用 Laravel 和 Vue.js)

Vue Table 2 - 自定义过滤器

如何为使用 Vuex store的 Vue 表单组件编写 Jest 单元测试?

使用 vue-property-decorator 时注册本地组件

在组件外使用 VueI18n 的问题

异步方法不等待函数

如何在两个属性上使用 Vue/Vuetify 自动完成过滤器?

Vue在按钮单击时添加一个组件

如何在 JEST 测试中模拟全局 Vue.js 变量

Laravel 和 Vue - handler.call 不是函数

Vuetify 数据表不显示数据

如何在 VueJS 中下载本地存储的文件

为什么 router.currentRoute.path 没有react?

使用 CloudFront 部署在 S3 上的 VueJS 应用程序的指定的密钥不存在

Vue.js 显示空格(换行符)