在vue里出现明明从后端初始化了表单数据,但是页面首次加载不渲染,原因可能是初始化form的时候这样:

data() {
      return {
           this.form={}
    }
}

或许你需要这样:

data() {
      return {
           this.form={id:"",type:"" ......}
    }
}

那么,这是为什么呢?知其然,还要知其所以然。我们要从vue的深入响应式原理分析,官网解释:

 想必看到这就明白啦,这是因为首次加载的时候vue初始化setter和getter的时候只有一个空的form,所以当你设置this.form.name="zhuzhu" 的时候vue是执行了this.form添加属性name。但是并没有监听到form表单的数据变化。

那么第二次呢,第二次我们有了name值属性,那么,但凡form发生什么属性变化和值的变化,就能监听到了。哦哦,原来如此,长知识了。

Logo

前往低代码交流专区

更多推荐