vue props 接收数据,watch和mounted同时完成数据渲染
在子组件里,接收数据之后可以直接mounted里操作数据
export default {
name: 'zblist',
props: {
lists:Array
},
data() {
return {
show: true,
Tlist: this.lists,
list_today:[]
}
},
mounted() {
console.log(this.Tlist) //报错
// this.list_today = this.Tlist[0].today
},
}
但是今天遇到的问题,可能是axios异步传输数据的问题,页面刚加载的时候mounted里打印的数据是长度为0的空数据,但是{{Tlist}}可以在页面渲染,打印数据如下:
在编辑器任意编辑保存之后,页面自动刷新才赋值成功

查看文档和请教大神之后,觉得可以用mounted和watch同时完成数据渲染
export default {
name: 'zblist',
props: {
lists:Array
},
data() {
return {
show: true,
Tlist: this.lists,
list_today:[]
}
},
watch:{
lists:function(newVal,oldVal){
this.Tlist = newVal
this.getData()
}
},
mounted() {
this.getData()
},
methods: {
getData() {
console.log(this.Tlist)
this.list_today = this.Tlist[0].today
}
},
}
这样,不管是初始化的渲染还是数据变化后再监听,都能操作数据了。
第一次用vue做项目,有很多很多盲目的地方,希望路过的大神能指点一二
本文讨论了在Vue中如何处理props传递的数据。在子组件中,由于axios的异步问题,mounted钩子可能无法获取到完整的初始数据。通过结合使用watch和mounted,可以确保不论是在数据初始化还是更新时,都能正确处理数据渲染。
670

被折叠的 条评论
为什么被折叠?



