したがって、小道具を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
コンポーネント内でon 初期化フックに割り当てthis.initialProperties
ているということです 。そしてそれは機能し、反応します。this.data.properties
created()
// 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>
しかし、それに関する私の問題は、それが正しい方法であるかどうかわからないということですか?道に迷惑をかけてしまいませんか?それとももっと良い方法がありますか?
data
されてtwo-way
バインドされていますが、渡すことはできませんdata
コンポーネントに、あなたは合格props
していますが、受信変更することはできませんprops
や変換props
にdata
。じゃあ何?私が学んだことの1つは、props
イベントを継承してトリガーする必要があるということです。つまり、コンポーネントがprops
受け取ったものを変更したい場合は、イベントを呼び出して「レンダリング」する必要があります。しかし、one-way
Reactとまったく同じバインディングが残っているので、その用途はわかりませんdata
。かなり混乱しています。