在Vue.js中重写属性和方法的正确方法
Proper way to override properties and methods in Vue.js?
在Vue.js中使用mixins重写方法的正确方法是什么?我知道你可以使用mixins模拟继承,但是让我们假设你想扩展一些道具,但不完全覆盖整个道具的值。
例如,我有一个baseCell,但我也需要有组件,将相似,但功能不同的<td>
s和<th>
s,所以我创建了两个额外的组件,使用baseCell作为mixin。
var baseCell = {
...
props: {
...
initWrapper: {
type: String,
default: 'td'
},
...
},
methods: {..}
};
在组件中设置这样的道具将完全覆盖所有的值。
Vue.component('tableHeader', {
mixins: [baseCell],
props: {
initWrapper: {
default: 'th'
}
}
}
我已经想出了一个合并属性的解决方案,但它似乎有点黑客,我不确定是否有更好的解决方案。
Vue.component('tableHeader', {
mixins: [baseCell],
props: Object.assign({}, baseCell.props, {
initWrapper: {
default: 'th'
}
})
});
这样,我保留了baseCell道具,但在传递的对象中定义了一些。
可以在文档中找到一个例子:https://v2.vuejs.org/v2/guide/mixins.html Custom-Option-Merge-Strategies
相关文章:
- 序列化数据属性中对象的最可靠方法
- 如何从对象的原型方法访问JavaScript对象属性
- 设置嵌套对象属性的更好方法
- JQuery示例不起作用-“;对象没有't支持属性或方法'按钮'&”;
- 对象不支持属性或方法“自动完成”
- 为什么我可以在Array属性对象中找到Javascript Array for Each方法
- Es6:能够在设置/更新/删除对象属性时调用自定义方法
- 区分具有相同名称的属性和方法
- sails.js beforeCreate方法只接收required设置为true的模型属性
- SCRIPT438:对象没有't支持属性或方法'endsWith'在IE10中
- 有什么方法可以将类型指定为 self?或解决方法“属性类型不兼容”
- 打字稿 - 为什么猫鼬中不存在“方法”属性
- 从JavaScript中的另一个方法属性中引用对象方法属性
- Javascript:通过在数组上循环来创建对象方法/属性
- 冲突/方法/属性Javascript错误
- 将' this '的继承扩展到' object '的方法/属性
- Javascript继承静态和实例方法/属性
- 我可以为对象设置正则表达式吗's方法/属性选择器
- 发现HTML对象标记方法/属性
- 为什么我的主干模型奇怪地嵌套在集合中,需要钻取才能访问方法/属性?