首先说需求;popver打开关闭的同时,完成内部东西的卸载与挂载。
这个东西首先要从popver的编译说起,pop窗口被编译在网页的app层,里面的东西也就跟着一起在app层了。这就产生了一个非常不正确的状态情况。
刚打开界面的时候。popver没被人点过,里面的内容是未被挂载的状态,一旦pop被点开,被挂载了,再关闭pop,这时候依旧是被挂载在app层的。因此,给你一个没有打开的pop的情况的画面,无法判断pop里面的内容是否被挂载。对于用户来说,同样的画面有两种不同的情况,就很不合理。
举例:pop外有三个选项,abc,点啥pop显示啥,多选。
用户使用的时候正常操作:打开pop,看自己啥都没选,关闭pop。abc随便选选,打开pop。这时候pop中就能显示出来用户选了啥。
错误操作:abc随便选选,打开pop。这时候因为pop从来没被打开过,因此abc的内容不能被同步到pop中。
如果我们可以让状态同步:
<el-popovertrigger="click"v-model="switchModal"><div v-if="switchModal">xxxxxxxxx</div></el-popover>
switchModal受到pop中v-model的控制,每次pop开关引起它变化,它又控制了里面内容的卸载与挂载。