所以我想把道具传递给 Vue 组件,但是我希望这些道具在未来从该组件内部改变,例如当我使用 AJAX 从内部更新 Vue 组件时。因此它们仅用于组件的初始化。
我的 cars-list
Vue 组件元素,其中我将具有初始属性的道具传递给 single-car
:
// cars-list.vue
<script>
export default {
data: function() {
return {
cars: [
{
color: 'red',
maxSpeed: 200,
},
{
color: 'blue',
maxSpeed: 195,
},
]
}
},
}
</script>
<template>
<div>
<template v-for="car in cars">
<single-car :initial-properties="car"></single-car>
</template>
</div>
</template>
我现在做的方法是,在我的 single-car
组件中,我将 this.initialProperties
分配给 created()
初始化钩子上的 this.data.properties
。它起作用了,而且是反应性的。
// single-car.vue
<script>
export default {
data: function() {
return {
properties: {},
}
},
created: function(){
this.data.properties = this.initialProperties;
},
}
</script>
<template>
<div>Car is in {{properties.color}} and has a max speed of {{properties.maxSpeed}}</div>
</template>
但我的问题是我不知道这样做是否正确?这不会给我带来一些麻烦吗?还是有更好的办法?