父组件传一个对象,有很多属性,子组件接收时怎么把每个属性单独赋值给定义的data值?
比如传递的参数:
prop={
a:11,
b:22,
c:33
...
}
子组件接收时怎么让data里定义的a,b,c分别等于11,22,33?
只能this.a=prop.a?...
我知道data里可以不定义,但dom里绑定时每个都需要加prop.,感觉也很繁琐
父组件传一个对象,有很多属性,子组件接收时怎么把每个属性单独赋值给定义的data值?
比如传递的参数:
prop={
a:11,
b:22,
c:33
...
}
子组件接收时怎么让data里定义的a,b,c分别等于11,22,33?
只能this.a=prop.a?...
我知道data里可以不定义,但dom里绑定时每个都需要加prop.,感觉也很繁琐
哦哦哦!
你通过 props 传递的是对象,
然后期望 赋值给 data ?
那么为什么不试试这样呢?
data(){
return {
...this.PropsData
}
}
对你没看错,这样是可以的
父组件
<template>
<div>
<a-child :query="query"></a-child>
</div>
</template>
<script>
export default {
data () {
return {
query: {
a: 1,
b: 2,
c: 3
}
}
}
}
</script>
子组件
<template>
<div>
<p>{{a}}</p>
<p>{{b}}</p>
<p>{{c}}</p>
</div>
</template>
<script>
export default {
data () {
return {
a: '',
b: '',
c: ''
}
},
props: {
query: {
default () {
return {}
}
}
},
watch: {
query (val) {
this.setQuery();
}
},
created () {
this.setQuery();
},
methods: {
setQuery () {
this.a = this.query.a || '';
this.b = this.query.b || '';
this.c = this.query.c || '';
}
}
}
</script>
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答4.7k 阅读✓ 已解决
4 回答4.3k 阅读✓ 已解决