vue、uniapp实现组件动态切换效果
更新时间:2023年10月11日 09:28:22 作者:我总是词不达意
在Vue中,通过使用动态组件,我们可以实现组件的动态切换,从而达到页面的动态展示效果,这篇文章主要介绍了vue、uniapp实现组件动态切换,需要的朋友可以参考下
在Vue中,通过使用动态组件,我们可以实现组件的动态切换,从而达到页面的动态展示效果。
vue 中 component组件 is属性
功能描述
例如:有多个tabs标签,如:推荐、热点、视频等。用户点击标签就会切换到对应组件
vue2版
<template> <!-- 标签数据 --> <!-- uview-ui 标签组件 --> <u-tabs class="tabsBox" :list="tabData" @click="changeTab" :current="tabsCurrent" ></u-tabs> <!-- 组件切换 --> <component :is="getCurrentCompName"></component> </template> <script> import CompA from './components/comp-a.vue' import CompB from './components/comp-b.vue' import CompC from './components/comp-c.vue' export default { data() { return { tabsCurrent: 0, tabsList: [], } }, computed: { getCurrentCompName() { let currentCompName = '' switch (this.tabsCurrent) { case 1: currentCompName = 'CompB' break case 2: currentCompName = 'CompC' break default: currentCompName = 'CompA' } return currentCompName }, }, methods: { toggle(index) { this.tabsCurrent = index }, }, } </script>
vue3版
<template> <!-- 标签数据 --> <!-- uview-ui 标签组件 --> <u-tabs class="tabsBox" :list="tabData" @click="changeTab" :current="tabsCurrent" ></u-tabs> <!-- 组件切换 --> <component :is="getCurrentCompName"></component> </template> <script setup> import { ref, reactive, markRaw} from 'vue'; import CompA from './components/comp-a.vue'; import CompB from './components/comp-b.vue'; import CompC from './components/comp-c.vue'; const tabsCurrent = ref(0); const tabsList = ref([]); const getCurrentCompName = () => { let currentCompName = ''; switch (tabsCurrent.value) { case 1: currentCompName = markRaw(CompB); break; case 2: currentCompName = markRaw(CompC); break; default: currentCompName = markRaw(CompA); } return currentCompName; }; const toggle = (index) => { tabsCurrent.value = index; }; </script>
或者
<template> <!-- 标签数据 --> <!-- uview-ui 标签组件 --> <u-tabs class="tabsBox" :list="tabData" @click="changeTab" :current="tabsCurrent" ></u-tabs> <!-- 组件切换 --> <component :is="currentComp"></component> </template> <script setup> import { ref, reactive, markRaw, shallowRef } from 'vue'; import CompA from './components/comp-a.vue'; import CompB from './components/comp-b.vue'; import CompC from './components/comp-c.vue'; const tabsCurrent = ref(0); const tabsList = ref([]); const currentComp = shallowRef(CompA) const toggle = (index) => { tabsCurrent.value = index; switch (index) { case 1: currentComp.value = CompB; break; case 2: currentComp.value = CompC; break; default: currentComp.value = CompA; } }; </script>
到此这篇关于vue、uniapp实现组件动态切换的文章就介绍到这了,更多相关vue uniapp组件动态切换内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
ant-design-vue中的select选择器,对输入值的进行筛选操作
这篇文章主要介绍了ant-design-vue中的select选择器,对输入值的进行筛选操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-10-10vite+vue3+tsx项目打包后动态路由无法加载页面的问题及解决
这篇文章主要介绍了vite+vue3+tsx项目打包后动态路由无法加载页面的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-03-03Vue 3 中使用 vue-router 进行导航与监听路由变化的操作
在Vue3中,通过useRouter和useRoute可以方便地实现页面导航和路由变化监听,useRouter允许进行页面跳转,而useRoute结合watch可以根据路由变化更新组件状态,这些功能为Vue3应用增加了灵活性和响应性,使得路由管理更加高效2024-09-09Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
下面小编就为大家分享一篇Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2017-12-12vue3 组合式api中 ref 和$parent 的使用方法
vue3中, 在 组件中添加一个 component ref=“xxx” ,就可以在父组件中得到 子组件的 dom 对象, 以及 虚拟的 dom 对象, 有了虚拟 dom, 我们就可以在父组件中控制子组件的显示了,这篇文章主要介绍了vue3组合式api中ref和$parent的使用,需要的朋友可以参考下2023-09-09
最新评论