由于组件key作为组件的唯一标识,key值改变则子组件也会被重新加载。
我们只需要在父组件触发事件的时候 改变key的值就可以了,一般用时间戳就可以实现
父组件:
<template>
<div class="content" @click="thisClick">
<ChildClass :key="timer" :child-name="childName"></ChildClass>
</div>
</template>
<script>
import ChildClass from './ChildClass.vue'
export default {
components: { ChildClass },
prop: {},
name: 'ParentClass',
data () {
return {
timer: '',
childName: '张三'
}
},
methods: {
thisClick () {
this.timer = new Date().getTime()
this.childName = '张三_' + this.timer
}
}
}
</script>
子组件:
<template>
<div>
<h1>{{ childName }}</h1>
</div>
</template>
<script>
export default {
props: {
childName: {
type: String,
default: null
}
},
data () {
}
}
</script>
|