【发布时间】:2020-09-08 21:09:00
【问题描述】:
我知道vue模型是props的单向数据流。
但是,当 prop 为引用对象时,组件可以直接修改其属性。这是错误的,但vue不会检查它。
希望有一种机制保证组件不能修改props(即使是引用对象),而不是被开发者检查。
例如,我有一个组件
<template>
<input v-model="obj.text" />
</template>
<script>
export default {
props: ['obj']
};
</script>
以及使用它的页面
<template>
<my-template :obj="myobj"></my-template>
</template>
<script>
export default {
data() {
myobj: {
text: "hello";
}
}
};
</script>
当 'input' 中的数据发生变化时,myobj.text 会一起变化。这违反了单向数据流。
当然,如答案所示,我可以使用“computed”的“get”和“set”方法。
但我必须注意不要将 'obj.someProperty' 写入任何 'v-model',但这需要我自己注意。
我希望有一个机制在我犯错时给出提示。
【问题讨论】:
标签: vue.js