一句话印象
对我来说,v-if 是「要不要存在」,v-show 是「显不显示」。听起来像废话,但写页面时用这个标准判断,很少再纠结。
我实际怎么用
- 登录框、权限模块、很少打开的面板:用
v-if,没必要一直占着 DOM。 - 标签页内容来回切、动画切换较频繁:更倾向
v-show,少反复创建销毁。 - 带较重子组件、且默认不展示:优先
v-if,避免首屏白白初始化。
自己踩过的坑:在
v-if 里放表单,关掉再打开时输入会丢。若要保留填写内容,要么改 v-show,要么自己把状态提到外层。小结
不追求「绝对正确」,先问两个问题:会不会频繁切换?默认要不要渲染?答案清楚了,写法也就清楚了。
模板性能感