前言: 一般更新子组件会先加个v-if,每次打开子组件的时候重新构建子组件,关闭的时候就false删除子组件,这样达到刷新子组件的操作,
这次我写的组件不需要按钮操作去打开,不是弹窗是一个小的功能被多个页面使用,并且存在一个页面多处使用它的情况,
// 父组件页面中
<template>
<cascader :key='timer'></cascader>
</template>
<script>
import {cascader} form '@/components/common/' // 引入组件
export default {
components: { cascader }
data () {
return {
timer: ''
}
},
created () {
this.init()
},
methods: {
// 记录下异步用法
init: async function () {
await this.getInfo() // 这里面的请求执行完回来再执行下面的方法
// this.commit()
},
getInfo () { // 在点击切换或者打开页面的时候去添加
return this.timer = new Date().getTime()
}
}
}
</script>
我们新增的key是给vue渲染到DOM上用的,每次渲染的时候会拿这个key跟之前的对比,不同就会重新渲染DOM,反之就会保留上次的元素,所以我们直接给key绑定一个时间戳