这个问题一般是json数据是由后台请求提供,但在页面加载的时候,还没有这个对象。
解决办法有几个,各有优缺点:
1.一般在mounted方法中获取数据的,采用同步,等数据拿到后,再加载页面,可以防止报错,页面出现脚本{{XXX}}等。缺点是:数据大会影响页面加载的速度。
2.一般报错都是对data项,动态新增属性,可以这样定义,如下图,防止出现undefined.属性的情况出现,就不会报错了。缺点是:每个属性都要先写好,烦,Vue.set方法等于废了。
![](https://i-blog.csdnimg.cn/blog_migrate/f98958edd3d89a7aeba7ea04aac292ef.png)
3.用一个标示,放在data根节点下面 ,设isload=false,当数据拿到后,设置isload=true
页面显示的时候,在最外面的根节点html标签上加上 v-if='isload',缺点:还是麻烦。
![](https://i-blog.csdnimg.cn/blog_migrate/0175531f1c44ffb8a11fc5bf7d2871ac.png)
上述3中解决办法:还是没有根治之道,网上有人说可以在Vue生命周期上做点文章,可能本人水平有限,没搞的出来,有大腿可以留言我哈。