javascript - 在Vue中,我可以传输 Prop 吗?

标签 javascript vue.js

想象我有一个<progress-bar> UI 组件,我想创建一个 <app-progress-bar><progress-bar> 相同的组件但进行了一些风格调整。

AppProgressBar.vue:

<template> <progress-bar class="app-progress-bar"></progress-bar> </template>

这会中断,因为 <progress-bar>需要 percent支柱。这样我就可以将其传递进去:

<progress-bar class="app-progress-bar" percent="percent"></progress-bar>

这看起来不错,但是当 <progress-bar> 时就很脆弱了有很多 Prop 。我可以简单地传递所有 Prop 吗?理论语法:

<progress-bar class="app-progress-bar" {...props}></progress-bar>

这与 React/JSX 类似。

最佳答案

就像已经回答的那样,扩展组件将是在这种情况下创建组件的好方法。类似于其他语言中的类继承。

但是,您也可以将对象作为 prop 传递。如果你想保持干净,并且不想扩展你的组件,你可以传递这样的 prop:

//object with many values that you need to pass. for ex.
myObjectWithSuff: { percent: 10%, someOtherStuff: value, ... } 

<progress-bar class="app-progress-bar" myProp="myObjectWithStuff"></progress-bar>

progress-bar 组件内,声明 prop myProp。然后您可以访问该对象的任何属性。例如:this.myProp.percent

这既快速又简单,但根据您的架构,扩展组件可能是可行的方法。

关于javascript - 在Vue中,我可以传输 Prop 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37515763/

相关文章:

javascript - Dat GUI - 菜单的大小和位置 (javascript/css)

javascript - 将自动图像 slider 更改为链接点击 slider

firebase - 扩展 Firebase 用户

javascript - VueJS 输入验证 Push/Pop 到数组

javascript - CSS 否定 : Displaying specific elements in a hidden Element?

javascript - 使用 Javascript 在一个页面上显示多个实例

javascript - 在 Firefox 中设置 FileInput 的 FileList

javascript - VueJS 动态条形图颜色

javascript - Vue.js - 删除带有组件或类似组件的冗长引导输入字段代码

vue.js - 如何从 registerServiceWorker.js 调用 Vue 应用程序 $refs.components 或 Vuex $store 中的方法?