vue实现动态tab组件思路?

发布于 2022-09-07 20:28:31 字数 316 浏览 33 评论 0

描述:移动web使用vue实现左右两列布局,左侧为各种信息表格名称组成的列表,右侧内容为点击左侧菜单后动态加载的内容。右侧内容主要为各种表单,并且有默认值(用户可以修改并提交)。

实现方式:
思路1.左侧列表与右侧内容为不同的组件,比如left.vue right.vue两个单文件组成。
思路2.左侧列表与右侧内容为同一个组件内部。内容的切换由动态组件切换达成。

哪一种实现方式好一点呢?个人认为第二种好一点,整体性更强!

新增:兄弟组件间传值,也就是根据左侧菜单点击的不同条目,去更新右侧组件的不同表单,在项目不大的情况用事件总线的方式是不是好于vuex?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

菊凝晚露 2022-09-14 20:28:31

我比较赞同第一个吧。第二个虽然你觉得整体性强,但是如果都柔到一个组件里面,代码会非常杂乱,非常多,非常不利于以后维护和修改。


是的,在你涉及到的组件和数据不是特别多的时候,用事件通知确实比vuex要方便一点。

韵柒 2022-09-14 20:28:31

我会写在一个组件中,左侧是一个 tab,右边是动态组件,

<template>
    <div class="tabs">
        <tab-item
            v-for="tab in tabs"
            @click.native="onTabClick(tab)">
    </div>
    <components :is="currentTab.component">
</template>

<script>
export default {
    data() {
        return {
            tabs: [
                {
                    name: 'a',
                    component: 'cpA'
                }            
            ],
            currentTab: {
                name: 'a',
                component: 'cpA'
            }
        }
    },
    methods: {
        onTabClick(tab) {
            this.currentTab = tab
        }
    }
}
</script>

简单帮你撸了一下,差不多就是这样。

溺渁∝ 2022-09-14 20:28:31

我做的话,还是要根据右侧的内容是否是统一的,比如像外卖,不同的类别,右边不同的商品,那么肯定是同一个组件去做。
再比如你这种情况,右侧主要是不同的表单,如果表单的内容不同,甚至更多。肯定倾向不同的组件,甚至可以采用不同的路由,二级路由的方式去做

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文