最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue 重置組件到初始狀態(tài)的方法示例

 更新時間:2018年10月10日 10:10:12   作者:spolier  
這篇文章主要介紹了Vue 重置組件到初始狀態(tài)的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Vue

通過直接強制刷新 DOM 來達到重置組件的效果,這樣可以重置一些組件的動畫以及組件內初始的數(shù)據(jù)

強制重新生成 DOM 的實現(xiàn)

原理:強制重新生成 DOM 可以通過 Vue 中的 key 來實現(xiàn)。在 Vue 更新 Dom 時,如果 key 值相同則會對原有組件進行復用,如果不同,則會重新生成。

代碼示例:

每次點擊 refresh 按鈕,Demo 組件都會重新生成

組件:

/**
 * Demo.vue
 */
<template>
 <div>Demo</div>
</template>
<script>
 export default {
  data () {
   return {}
  },
  created: function () {
   console.log('created')
  }
 }
</script>

主頁面:

/**
 * Index.vue
 */
<template>
 <div>
 <Demo :key="id"></Demo>
 <button @click="refresh">refresh</button>
 </div>
</template>
<script>
 import Demo from './Demo'
 export default {
  data () {
   return {
    id: +new Date()
   }
  },
  methods: {
    refresh: function () {
    this.id = +new Date()
   }
  },
  components: {
   Demo
  }
 }
</script>

注:

對 +new Date() 的說明:
4 個結果一樣,都是返回當前時間的毫秒數(shù)
alert(+new Date())
alert(+new Date)
var a=new Date()
alert(a.valueOf())
alert(a.getTime())

補充:vue強制刷新組件

把一個組件重置到初始狀態(tài)是一個常見的需求,推薦的做法有兩種,一種是父組件重置子組件的 prop,另一種是子組件暴露一個重置的方法供父組件調用。但有些時候,子組件既沒有提供重置的方法,也沒提供 prop 來重置自己的狀態(tài)。更重要的是,這個子組件我們還動不了。于是我們就需要一種 hack 的方式來強制子組件重置到初始狀態(tài)。方法如下:

<component v-if="hackReset"></component>

this.hackReset = false
this.$nextTick(() => {
this.hackReset = true
})

v-if 在切換時,元素及它的綁定數(shù)據(jù)和組件都會被銷毀并重建

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

最新評論

湖口县| 中牟县| 贺兰县| 称多县| 台湾省| 客服| 盐城市| 西峡县| 乡城县| 崇左市| 报价| 宝坻区| 神木县| 栖霞市| 绵竹市| 衡山县| 灌阳县| 连山| 远安县| 江北区| 石渠县| 姜堰市| 积石山| 保定市| 东乌| 噶尔县| 车险| 吴川市| 新野县| 琼中| 汉川市| 安西县| 蒙自县| 色达县| 石景山区| 宁明县| 密云县| 涡阳县| 若尔盖县| 天镇县| 遂川县|