我其实是想讲,在props传输异步数据之后,使用watch监听在测试服完美起跑,正式服直接挂掉的这样一个故事,但是因为这样写的话标题太长,所以就......
为什么使用watch监听?
在一个vue项目里面,我把刚从后台请求到的数据直接通过props传给子组件,这里遇到一个问题,我的页面渲染出来的props数据是空的(手动黑人问号)amazing,unbelievable...
我就在网上找了一些方法:(这里写两个,其他的忘记了)
一种是我现在写的watch去监听props传过来的数据
另一种是子组件上做判断,类似如下的方式(五星推荐):
<Parent><Child v-if="data" :data="data"><Child/><Parent/>
(为什么我用watch呢,我觉得监听这个词牛逼)
然后呢?
马上,你就会发现这是个巨坑的姿势。
诡异的事情发生了:当晚上线,正式服上面我用watch监听的数据不见了(wt fu)。原因是(才疏学浅)watch监听复杂数据类型,特别是数组、对象互相嵌套的数据是不能够的,或者说简单的函数的方式是无法达到预想的监听效果,这个时候需要使用对象的方式在watch中书写:
watch:{
prop:{
handler(newval, oldval) {
console.log(val)
},
deep: true, // 深度监听复杂数据结构
immediate: true // 初始化设置默认数据
}
}
这个问题暂时就这样把,正在学习中,更多的内容,以后慢慢补上。
欢迎指正,欢迎延申
参考
(笔记做的不及时,忘记看谁的文章了,网上很多,各位随意)
Vue的watch (官网baba)
网友评论