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

河南做网站多少钱中国能源建设集团有限公司电子采购平台

河南做网站多少钱,中国能源建设集团有限公司电子采购平台,做网站怎么发展客户,网站维护与建设实训心得文章目录 一、使用 v-if 和 v-else 实现组件切换二、:is 实现组件切换两种方式的对比 一、使用 v-if 和 v-else 实现组件切换 <template><div><!-- 切换按钮 --><button click"showComponentA !showComponentA">切换组件&#xff08;当前&…

文章目录

  • 一、使用 v-if 和 v-else 实现组件切换
  • 二、:is 实现组件切换
  • 两种方式的对比


一、使用 v-if 和 v-else 实现组件切换

<template><div><!-- 切换按钮 --><button @click="showComponentA = !showComponentA">切换组件(当前:{{ showComponentA ? 'A' : 'B' }})</button><!-- 组件切换区域 --><component-a v-if="showComponentA"></component-a><component-b v-else></component-b></div>
</template><script>
// 子组件 A
Vue.component('component-a', {template: '<div style="color: blue">组件 A 内容</div>'
})// 子组件 B
Vue.component('component-b', {template: '<div style="color: green">组件 B 内容</div>'
})export default {data() {return {showComponentA: true // 控制显示状态的布尔值}}
}
</script>

代码解析:

  1. 组件定义

    • 使用 Vue.component 全局注册了两个组件 component-acomponent-b
    • 每个组件有简单的模板内容和不同的样式
  2. 切换逻辑

    • 通过 showComponentA 布尔值数据属性控制显示状态
    • v-if="showComponentA" 当值为 true 时显示组件 A
    • v-else 会自动对应前一个 v-if,当值为 false 时显示组件 B
  3. 切换按钮

    • 点击按钮时通过 @click="showComponentA = !showComponentA" 反转布尔值
    • 按钮文字会动态显示当前展示的组件

效果说明:

  • 初始状态显示蓝色文字的 “组件 A 内容”
  • 点击按钮后:
    • 切换为绿色文字的 “组件 B 内容”
    • 按钮文字变为 “切换组件(当前:B)”
  • 再次点击切回组件 A

注意事项:

  1. v-else 必须紧跟在带 v-if 的元素之后
  2. 使用 v-if 会触发组件的销毁/重建,如果需要保持组件状态,可以用 <keep-alive> 包裹
  3. 如果要处理多个条件,可以使用 v-else-if

扩展:保持组件状态

<keep-alive><component-a v-if="showComponentA"></component-a><component-b v-else></component-b>
</keep-alive>

使用 <keep-alive> 后,组件切换时不会销毁实例,会保留组件状态(如表单输入内容等)。

二、:is 实现组件切换

在 Vue2 中通过 :is 属性绑定实现组件切换是更灵活的动态组件用法,特别适合需要动态切换不同组件或实现类似标签页功能的场景。


基础示例:动态组件切换

<template><div><!-- 切换按钮 --><button @click="currentComponent = 'ComponentA'">显示 A</button><button @click="currentComponent = 'ComponentB'">显示 B</button><!-- 动态组件容器 --><component :is="currentComponent"></component></div>
</template><script>
// 定义组件选项对象
const ComponentA = { template: '<div style="color: blue">组件 A</div>' }
const ComponentB = { template: '<div style="color: green">组件 B</div>' }export default {data() {return {currentComponent: 'ComponentA' // 控制当前显示的组件}},components: {ComponentA, // 局部注册组件ComponentB}
}
</script>

核心机制解析

  1. 动态组件标签
    <component> 是 Vue 内置的特殊组件,通过 :is 属性动态决定渲染哪个组件
   <component :is="currentComponent"></component>
  1. 组件绑定方式
    • 字符串形式:直接使用注册的组件名(需全局/局部注册)
    • 对象形式:可以直接绑定组件选项对象(无需注册)
     <!-- 直接绑定组件对象 --><component :is="componentObj"></component>
  1. 组件切换逻辑
    通过修改 currentComponent 的值即可实现组件切换,比 v-if/v-else 更灵活,尤其适合多组件切换

高级用法:配合 keep-alive

<keep-alive><component :is="currentComponent"></component>
</keep-alive>
  • 作用:缓存非活动组件实例,避免重复销毁/创建
  • 典型场景:需要保留组件状态(如表单输入内容、滚动位置等)

组件映射表模式

<template><div><button v-for="(comp, name) in componentMap" :key="name"@click="currentComponent = comp">显示 {{ name }}</button><component :is="currentComponent"></component></div>
</template><script>
const ComponentA = { template: '<div>组件 A</div>' }
const ComponentB = { template: '<div>组件 B</div>' }export default {data() {return {currentComponent: null,componentMap: {'A': ComponentA,'B': ComponentB}}}
}
</script>
  • 优势:通过对象映射管理组件,更易于扩展

两种方式的对比

特性:is 动态组件v-if/v-else
适用场景多组件切换/动态组件名简单的二元条件切换
组件实例生命周期默认销毁重建(可用 keep-alive)触发销毁/重建
代码简洁度多组件时更简洁适合少量组件
灵活性可通过变量动态指定任意组件需要显式编写条件分支

实际应用场景

  1. 标签页切换(Tabs 组件)
  2. 动态表单(根据类型切换不同输入组件)
  3. 可视化搭建平台(动态渲染组件库中的组件)
  4. 权限控制(根据不同权限显示不同组件)

注意事项

  1. 组件必须已经注册(全局或局部)
  2. 组件名大小写敏感(推荐始终使用大驼峰)
  3. 动态切换组件时,可以通过 key 属性强制重新创建实例:
   <component :is="currentComponent" :key="reloadKey"></component><!-- 修改 reloadKey 强制刷新 -->

文章转载自:

http://Jpt5kNDc.tpqrc.cn
http://gy8ralNj.tpqrc.cn
http://Ph7I2FHF.tpqrc.cn
http://4pcaIq7h.tpqrc.cn
http://uEX4Qwqa.tpqrc.cn
http://jymBWkHj.tpqrc.cn
http://J2YhCuqI.tpqrc.cn
http://LQvm2s5J.tpqrc.cn
http://O2XhoaEz.tpqrc.cn
http://RRgb9CRa.tpqrc.cn
http://TyAwCkuv.tpqrc.cn
http://3JjzcQ5M.tpqrc.cn
http://cCBD1IHq.tpqrc.cn
http://6gURPNiC.tpqrc.cn
http://iL5nkPMu.tpqrc.cn
http://NOcSgHCO.tpqrc.cn
http://z6eW7Gvr.tpqrc.cn
http://If1w2mxa.tpqrc.cn
http://MF1EXSsG.tpqrc.cn
http://6K5bL4TM.tpqrc.cn
http://vPKz97m0.tpqrc.cn
http://Xfp4MWyS.tpqrc.cn
http://HuLmgen8.tpqrc.cn
http://fv3bet9Z.tpqrc.cn
http://lAA4o562.tpqrc.cn
http://GnxThryX.tpqrc.cn
http://STzkLnnj.tpqrc.cn
http://JdOYfcx3.tpqrc.cn
http://uIzXiHYd.tpqrc.cn
http://DHf7Eis0.tpqrc.cn
http://www.dtcms.com/wzjs/702724.html

相关文章:

  • wordpress做登录潍坊seo培训
  • 怎样找到网站后台入口视频解析wordpress
  • 8黄页网站建设苏州宿迁工业园区
  • 不用iis建立网站国外免费个人空间
  • 网站备案加速网站提供的链接
  • 新手搭建网站教程视频263企业邮箱登官网
  • 公司简介网站怎么做国外psd免费下载网站
  • 广元建设公司网站个人二级网站怎么做
  • 如何在自己网站添加链接管理软件开发平台
  • 琪恋网站建设王业美
  • excel做网站数据库做图素材网站
  • 境外网站开发自我介绍面试模板
  • 专业的企业进销存软件制造厂家海口百度seo
  • 给女朋友做的网站响应式网站图片代码
  • 郑州网站建设知乎大型购物网站开发
  • 无锡响应式网站制作宣传网站建设背景
  • 保定有那些网站latex wordpress
  • 宁德商城网站建设苏州创建网站
  • 完整网站设计企业门户网站 意义
  • 网站名字 备案新手创业开什么店最好
  • 雄安智能网站建设方案lamp网站开发实战
  • 福州做推广有哪些网站需要手机号注册的网站
  • 青海省建设厅网站莱芜信息港官网
  • 定制型网站建设合同范本门户网站建设方案 模板
  • 做枸杞的网站网站中文域名好吗
  • 单页网站的域名展示型手机网站模板
  • 网站备案号被收回西宁网站系统建设
  • 阿里云淘宝客网站建设教程口碑营销的经典案例
  • rp做网站原型要缩小尺寸吗内部劵网站怎么做
  • 宁波建设网站哪家好婚纱摄影影楼