tabbar选项卡+component动态组件的使用实例

component用法

<keep-alive> 
  <component :is="componentName"></component> 
</keep-alive>

keep-alive在组件切换过程中将状态保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,不使用的话组件被替换时会被销毁,再次使用时构造新的。

用例

有一个选项卡,标签的数量不是固定的,之后可能有扩展功能需要增加。切换标签即切换展示的组件。
用v-if判断当前生效组件名也可以,不过显得冗余。
可以使用component ,这样只需要在tabConfig里加入后面新增的组件信息,不必再修改html内容。

   <avue-tabs :option="{ column: tabConfig }" @change="handleChangeByTab" ref="avueTabs"></avue-tabs>
    <component :is="activeTab" :ref="activeTab" :invoiceId="formData.invoiceId"></component>

tabConfig是组件列表,里面有组件名和标签上要显示的label文本
handleChangeByTab 修改activeTab为当前组件名
invoiceId是自定义的要传给组件的内容。

不过如果不同组件要传入不同内容,还是要额外进行判断设置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在uniapp中,可以使用条件渲染和动态组件来实现根据路由改变动态显示自定义tabbar组件的效果。 首先,在App.vue中定义一个自定义tabbar组件,如下所示: ```html <template> <view> <custom-tabbar v-if="showTabbar"></custom-tabbar> <router-view></router-view> </view> </template> <script> import CustomTabbar from '@/components/CustomTabbar' export default { components: { CustomTabbar }, computed: { showTabbar () { // 根据路由判断是否显示自定义tabbar组件 return this.$route.path !== '/home' } } } </script> ``` 在上面的代码中,我们使用了条件渲染来判断是否显示自定义tabbar组件。通过computed属性中的showTabbar函数,我们可以根据当前路由来判断是否显示自定义tabbar组件。如果当前路由为/home,则不显示自定义tabbar组件;否则,显示自定义tabbar组件。 接下来,在自定义tabbar组件中,我们可以使用动态组件来实现不同的tabbar样式。例如,我们可以定义一个Tabbar1组件和一个Tabbar2组件,分别表示两种不同的tabbar样式。在自定义tabbar组件中,我们可以根据路由来决定显示哪种样式的tabbar。代码如下: ```html <template> <view> <component :is="tabbarType"></component> </view> </template> <script> import Tabbar1 from '@/components/Tabbar1' import Tabbar2 from '@/components/Tabbar2' export default { components: { Tabbar1, Tabbar2 }, computed: { tabbarType () { // 根据路由判断显示哪种样式的tabbar return this.$route.path === '/home' ? 'Tabbar1' : 'Tabbar2' } } } </script> ``` 在上面的代码中,我们使用动态组件来根据路由显示不同的tabbar样式。通过computed属性中的tabbarType函数,我们可以根据当前路由来决定显示哪种样式的tabbar。 最后,我们将自定义tabbar组件引入到App.vue中,并在路由发生变化时实现动态显示。这样,就可以根据路由改变动态显示自定义tabbar组件了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值