2

问题描述:做一个新增的表单,有好多必填项,如果新增完成以后,还停留在这个界面,那么完成以后,数据必须初始化,这样的话界面就会出现必填项的错误提示。
image.png

解决:我们可以从新刷新界面,但是这样对用户很不友好,界面重新加载,反应慢,空白页等等。

我的解决方案,可以通过路由基座的重新加载,实现界面重新渲染。

<router-view v-if="routerViewShow"></router-view>

1、通过传值来实现
app.vue

data () {
    return {
      routerViewShow: true
    }
  },
  // 提过给子组件的变量
  provide () {
    return {
      reload: this.reload
    }
  },
  methods: {
  // 定义方法,改变路由基座的状态,重现渲染路由内容,先置为false接着修改为true
    reload () {
      this.routerViewShow = false
      this.$nextTick(() => {
        this.routerViewShow = true
      })
    }
  }

2、表单提交完成以后调用这个方法,子组件中

data () {
    return {
     
    }
  },
  inject: ['reload'],
  methods: {
    submit () {
        ...
        
        ...
        
        // 调用父组件的方法
        this.reload()
  }

张旭超
1.4k 声望222 粉丝

精通 html+div+css jquery, vue, angularjs, angular2, angular4, ionic, ionic2