当前位置: 首页 > news >正文

站长之家域名查询官网宝安做棋牌网站建设哪家公司便宜

站长之家域名查询官网,宝安做棋牌网站建设哪家公司便宜,网站开发电话话术,做7寸照片的网站v-show 和 v-if 的区别及使用场景 一、v-show 与 v-if 的共同点 两者都能控制元素在页面中的显示与隐藏&#xff08;不包括 v-else 情况&#xff09;&#xff0c;且用法相同&#xff1a; <Model v-show"isShow" /> <Model v-if"isShow" />当表…

v-show 和 v-if 的区别及使用场景

一、v-show 与 v-if 的共同点

两者都能控制元素在页面中的显示与隐藏(不包括 v-else 情况),且用法相同:

<Model v-show="isShow" />
<Model v-if="isShow" />

当表达式为 true 时,元素都会占据页面位置;为 false 时,都不会占据位置。

二、v-show 与 v-if 的区别

  1. 控制方式不同

    • v-show 通过添加 CSS display: none 隐藏元素,DOM 元素依然存在
    • v-if 会直接添加或删除整个 DOM 元素
  2. 编译过程不同

    • v-if 有局部编译/卸载过程,会销毁和重建内部事件监听及子组件
    • v-show 仅进行简单的 CSS 切换
  3. 生命周期影响

    • v-show 状态变化不会触发组件生命周期
    • v-if 从 false 变为 true 会触发 beforeCreate、created、beforeMount、mounted 钩子;从 true 变为 false 会触发 beforeDestroy、destroyed
  4. 性能消耗

    • v-if 切换开销更大
    • v-show 初始渲染开销更大

三、实现原理分析

v-show 原理

无论初始条件如何,元素都会被渲染。其实现逻辑:

  1. 有 transition 时执行 transition 动画
  2. 无 transition 时直接设置 display 属性
// Vue 3 的 v-show 指令实现
export const vShow: ObjectDirective<VShowElement> = {// 在元素挂载到 DOM 之前执行beforeMount(el, { value }, { transition }) {// 保存元素的原始 display 值,用于后续恢复// 如果当前是隐藏状态(display: none),则保存空字符串// 否则保存当前的 display 值el._vod = el.style.display === 'none' ? '' : el.style.display// 如果存在过渡动画且值为真(显示元素)if (transition && value) {// 执行过渡动画的进入前钩子transition.beforeEnter(el)} else {// 否则直接设置元素的显示状态setDisplay(el, value)}},// ...其他生命周期处理(如 mounted, beforeUpdate, updated, beforeUnmount 等)}

v-if 原理

实现更为复杂,根据表达式值决定是否生成 DOM:

// Vue 3 的 v-if 指令转换器
export const transformIf = createStructuralDirectiveTransform(// 匹配 v-if、v-else、v-else-if 指令的正则表达式/^(if|else|else-if)$/,// 转换函数,处理条件指令的 AST 节点(node, dir, context) => {// 调用 processIf 函数处理条件分支逻辑return processIf(node, dir, context, (ifNode, branch, isRoot) => {// 条件分支处理逻辑// ifNode: 当前处理的 if 节点// branch: 当前分支(if/else-if/else)// isRoot: 是否为根节点})})

四、使用场景建议

  1. 频繁切换场景 推荐使用 v-show
    适用于需要快速响应的交互元素:
  • Tab 切换内容
  • 下拉菜单/折叠面板
  • 频繁开闭的 Modal 弹窗
  1. 静态条件场景 推荐使用 v-if
    适用于内容较重且不常变更的情况:
  • 根据用户角色/权限加载的初始页面模块
  • 登录状态相关的按钮/导航栏切换
  • 大数据列表/图表等按需加载的组件
http://www.dtcms.com/a/463595.html

相关文章:

  • 响应式网站实例宁波企业做网站
  • 合肥城乡建设网站百度热议排名软件
  • 北碚网站建设大理网站建设沛宣
  • 网站建设网站建设公司制作网站首页分为哪几部分
  • dede自定义网站地图工信部网站备案规定
  • 公司网站里面页面链接怎么做温州网站建设模板
  • Linux -- 信号【下】
  • 网站引导页下载互联网舆情监控系统
  • 如何做网站链接分析一站式网站开发服务平台
  • 【Spring Boot】Spring Boot 中常见的加密方案
  • 昭通网站seo团队拓展
  • 卡盟网站建设公司高清品牌网站设计建设
  • 网站模板的制作怎么做北京朝阳区哪里有网站开发
  • 好的网站开发培训深圳住房和建设局网站办事跟踪
  • 班级网站的建设wordpress升级流程
  • 上海的设计网站有哪些内容查看网站服务器ip
  • 面试被问到query不规范,导致召回难度大,如何解决呢
  • wordpress建站怎么上传做pc端网站咨询
  • 做一些网站犯法么网络服务设备有哪些
  • 企业网站建设 新天地网络咸阳公司做网站
  • 多线程并发篇面试题
  • 网站版面结构广州企业如何建网站
  • 化妆品公司网站源码网页制作软件大全
  • 用win2003做网站本科专业 网站开发
  • 网站ome系统怎么做装修公司网站怎么做的
  • 婚纱摄影网站优化技巧php wordpress 代码模板
  • 公司网站维护价格表2023网站关键词堆砌
  • 咸阳网站建设xymokj南宁庄关键词推广优化方案
  • 如何做网站系统海口网站建设q479185700棒
  • 德州北京网站建设seo优化大公司排名