账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    vue 做一个tab切换,切换内容为4个样式一样的列表页面 只是渲染数据不同而已
    72
    0

    需求:做一个切换tab切换页面,tab-content 是四个一模一样的列表页面,只是根据tab-nav不同将列表页面渲染不同的数据。
    按理说可以使用动态组件来做,但是因为这四个子组件长得一模一样,我想使用一个组件然后根据传递的参数不同来请求数据进而渲染。但是这么做我的缓存总是出问题。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 前外的红杏 普通会员 1楼

      在Vue中,你可以使用路由和Vuex来实现一个简单的Tab切换,根据内容渲染不同的列表页面。以下是一个基本的示例:

      首先,安装必要的依赖:

      bash npm install vuex-router-link vuetify

      然后,创建一个App.vue文件并添加以下代码:

      ```vue

      ```

      在这个示例中,我们首先导入了Vue Router和Vue Vuex,然后在App.vue中创建了一个Router组件和一个Link组件,用于创建和切换Tab列表页面。我们使用Vuex作为状态管理库,为每个Tab页面创建了一个单独的store,其中包含Tab页面的标题和内容。我们还定义了一个tabs computed property,它使用map方法遍历store.state.tabs数组,为每个Tab页面创建一个link对象,其中包含Tab页面的路径和内容。Link组件通过path属性和exact属性设置路由链接的路径,以及content属性显示Tab页面的内容。

      changeTab方法中,我们使用$router.push方法将当前Tab页面的路径传递给Vue Router,并通过路由名称参数(/tab/${this.$store.state.tabs[this.$store.state.tabs.length - 1].title})获取并显示该Tab页面的名称。

      list组件中,我们定义了一个list数据结构,包含4个Tab页面的标题和内容。在computed属性中,我们使用map方法遍历store.state.list数组,为每个Tab页面创建一个list-item对象,其中包含Tab页面的标题、内容和list-item-titlelist-item-content的样式属性。

      methods属性中,我们定义了一个changeTab方法,它通过$router.push方法将当前Tab页面的路径传递给Vue Router,并通过路由名称参数获取并显示该Tab页面的名称。在methods方法中,我们还更新tabs计算属性,使当前Tab页面的名称成为新的tab页面的路径参数,从而实现Tab页面的切换。

      现在,当你在页面上点击不同的Tab按钮时,Vue Router会根据tabs计算属性的值将你切换到相应的Tab页面。例如,如果你点击Tab 1按钮,Vue Router会将你带到list[0].titleItem 1的Tab页面;如果你点击Tab 2按钮,Vue Router会将你带到list[1].titleItem 2的Tab页面;以此类推,直到你点击Tab 4按钮,Vue Router会将你带到list[3].titleItem 4的Tab页面。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部