鍍金池/ 問(wèn)答/HTML/ vuejs如何刷新當(dāng)前路由?

vuejs如何刷新當(dāng)前路由?

clipboard.png

clipboard.png

如題,當(dāng)我點(diǎn)擊開單成功后,我該如何初始化這個(gè)組件?就是回到剛進(jìn)來(lái)的狀態(tài)?
這里東西比較多,我不想去找對(duì)應(yīng)綁定值然后清空,一開始就想到這種方式來(lái)做 this.$router.push('/#'),
但是然并卵,沒(méi)有用。

回答
編輯回答
安若晴

你使用this.$router.go(0)不行嗎?
我一般這么寫


this.$message('開單成功!')


setTimeout(() => {
  this.$router.go(0)
}, 500)

也可以使用

this.$nextTick( () => {
this.$router.go(0)
})

感覺(jué)用著很爽啊!

2018年8月23日 02:55
編輯回答
笑忘初

你所有的綁定值應(yīng)該寫在一個(gè)對(duì)象里,開單成功后直接清空對(duì)象不就回到初始值了么

2018年5月17日 04:50
編輯回答
初心

好問(wèn)題,百度后學(xué)習(xí)了。
https://www.zhihu.com/questio...

如果單純的想重新初始化特定的組件,可以在父組件中用 v-if 進(jìn)行控制。

<div>
  <child-comp v-if="showChild"></child-comp>
</div>

// 在父組建中
refreshChild() {
  this.showChild = false;
  setTimeout(() => {
    this.showChild = true;
  }, 0);
}
2018年3月16日 05:14
編輯回答
選擇

看你的UI,用的應(yīng)該是element吧?element中對(duì)form表單有一個(gè)重置方法,就是清空數(shù)據(jù)和判斷條件的。resetFields()方法可以了解一下。調(diào)用該方法后,會(huì)使表單恢復(fù)成初始值。

<template>
  <div>
    <el-form :model="formData" ref="formData" label-width="80px">
      <el-form-item label="姓名" prop="name">
        <el-input v-model="formData.name" placeholder="請(qǐng)輸入手機(jī)號(hào)碼"></el-input>
      </el-form-item>
      <el-form-item label="手機(jī)號(hào)" prop="mobile">
        <el-input v-model="formData.mobile" placeholder="請(qǐng)輸入手機(jī)號(hào)碼"></el-input>
      </el-form-item>
    </el-form>
    <el-button @click="onReset" type="primary">重置</el-button>
  </div>
</template>

<script>
export default {
  data () {
    return {
      formData:{
          name:'',
          mobile: ''
      }
    }
  },
  methods:{
    onReset(){
        this.$refs['formData'].resetFields();
    }
  }

}
</script>

輸入內(nèi)容后:

clipboard.png

點(diǎn)擊重置后:

clipboard.png

2017年3月22日 15:17
編輯回答
笨小蛋

組件最外層加ref 通過(guò)ref清空

2018年5月5日 21:05
編輯回答
歆久

經(jīng)檢測(cè),可以刷新當(dāng)前路由。

this.$router.go(0);
2018年9月22日 17:39